From c03cb82870010e6ff2376bb8649ee8c15910fa99 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Sun, 28 Feb 2021 19:08:36 -0500 Subject: [PATCH 01/23] Initial copy from pokedex --- index.js | 11 - package-lock.json | 2848 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 6 +- rest/index.js | 33 +- web/index.html | 27 +- web/index.js | 33 + web/pokemon.css | 186 +++ 7 files changed, 3114 insertions(+), 30 deletions(-) delete mode 100644 index.js create mode 100644 web/index.js create mode 100644 web/pokemon.css diff --git a/index.js b/index.js deleted file mode 100644 index bba5463..0000000 --- a/index.js +++ /dev/null @@ -1,11 +0,0 @@ -const express = require('express') -const app = express() -const port = 3000 - -app.get('/', (req, res) => { - res.send('Hello World!') -}) - -app.listen(port, () => { - console.log(`Example app listening at http://localhost:${port}`) -}) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1fca92a..5d1a217 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,1802 @@ { "name": "pokedex-app", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "pokedex-app", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.5", + "express": "^4.17.1", + "node-fetch": "^2.6.1", + "sequelize": "^6.5.0", + "sqlite3": "^5.0.2" + } + }, + "node_modules/@types/node": { + "version": "14.14.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", + "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "optional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "optional": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "optional": true + }, + "node_modules/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=", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "optional": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "optional": true, + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "optional": true + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "optional": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/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=" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "optional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dottie": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "optional": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "optional": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ], + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "optional": true + }, + "node_modules/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==", + "optional": true + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "optional": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "optional": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", + "engines": [ + "node >= 0.4.0" + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "optional": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "optional": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "optional": true + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "optional": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "optional": true + }, + "node_modules/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=", + "optional": true + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "optional": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "dependencies": { + "mime-db": "1.45.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/needle": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", + "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "optional": true, + "dependencies": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/node-pre-gyp/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/node-pre-gyp/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-pre-gyp/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-pre-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "optional": true + }, + "node_modules/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==" + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "optional": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "optional": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/retry-as-promised": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-3.2.0.tgz", + "integrity": "sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==", + "dependencies": { + "any-promise": "^1.3.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/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==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/sequelize": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.5.0.tgz", + "integrity": "sha512-owBt8fnzVy8E1OvyCyfCdVk7OOLyPVrBCMEf+CvRReC5oCyo+UqeXCtwaex9L6LM9ifZ1i3TG3sFeM5MgLK0CQ==", + "dependencies": { + "debug": "^4.1.1", + "dottie": "^2.0.0", + "inflection": "1.12.0", + "lodash": "^4.17.20", + "moment": "^2.26.0", + "moment-timezone": "^0.5.31", + "retry-as-promised": "^3.2.0", + "semver": "^7.3.2", + "sequelize-pool": "^6.0.0", + "toposort-class": "^1.0.1", + "uuid": "^8.1.0", + "validator": "^10.11.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependenciesMeta": { + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/sequelize-pool": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-6.1.0.tgz", + "integrity": "sha512-4YwEw3ZgK/tY/so+GfnSgXkdwIJJ1I32uZJztIEgZeAO6HMgj64OzySbWLgxj+tXhZCJnzRfkY9gINw8Ft8ZMg==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/sequelize/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/sequelize/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/sqlite3": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz", + "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp": "3.x", + "node-pre-gyp": "^0.11.0" + }, + "optionalDependencies": { + "node-gyp": "3.x" + }, + "peerDependencies": { + "node-gyp": "3.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "optional": true, + "dependencies": { + "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" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "optional": true, + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "optional": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validator": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", + "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, "dependencies": { + "@types/node": { + "version": "14.14.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", + "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -13,11 +1806,103 @@ "negotiator": "0.6.2" } }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "optional": 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-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "optional": 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=", + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "optional": 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=", + "optional": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "optional": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "optional": true, + "requires": { + "inherits": "~2.0.0" + } + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -35,10 +1920,54 @@ "type-is": "~1.6.17" } }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "optional": true + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "content-disposition": { "version": "0.5.3", @@ -63,6 +1992,29 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "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=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -71,6 +2023,22 @@ "ms": "2.0.0" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "optional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -81,6 +2049,26 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "dottie": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -138,6 +2126,30 @@ "vary": "~1.1.2" } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "optional": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "optional": 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==", + "optional": 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==", + "optional": true + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -152,6 +2164,23 @@ "unpipe": "~1.0.0" } }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "optional": 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==", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -162,6 +2191,95 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "optional": 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==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "optional": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "optional": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "optional": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -174,6 +2292,17 @@ "toidentifier": "1.0.0" } }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -182,16 +2311,123 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "optional": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "optional": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "optional": 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==", + "optional": 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=", + "optional": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -225,16 +2461,248 @@ "mime-db": "1.45.0" } }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "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==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "moment-timezone": { + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "requires": { + "moment": ">= 2.9.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "needle": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", + "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "node-addon-api": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "optional": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "optional": true + } + } + }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "optional": true, + "requires": { + "abbrev": "1" + } + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -243,16 +2711,59 @@ "ee-first": "1.1.1" } }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "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=" + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "optional": true + }, + "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==" + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -262,6 +2773,18 @@ "ipaddr.js": "1.9.1" } }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "optional": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "optional": true + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -283,6 +2806,89 @@ "unpipe": "1.0.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "optional": 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": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "optional": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "optional": true + } + } + }, + "retry-as-promised": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-3.2.0.tgz", + "integrity": "sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==", + "requires": { + "any-promise": "^1.3.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -293,6 +2899,19 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "requires": { + "lru-cache": "^6.0.0" + } + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -320,6 +2939,46 @@ } } }, + "sequelize": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.5.0.tgz", + "integrity": "sha512-owBt8fnzVy8E1OvyCyfCdVk7OOLyPVrBCMEf+CvRReC5oCyo+UqeXCtwaex9L6LM9ifZ1i3TG3sFeM5MgLK0CQ==", + "requires": { + "debug": "^4.1.1", + "dottie": "^2.0.0", + "inflection": "1.12.0", + "lodash": "^4.17.20", + "moment": "^2.26.0", + "moment-timezone": "^0.5.31", + "retry-as-promised": "^3.2.0", + "semver": "^7.3.2", + "sequelize-pool": "^6.0.0", + "toposort-class": "^1.0.1", + "uuid": "^8.1.0", + "validator": "^10.11.0", + "wkx": "^0.5.0" + }, + "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==" + } + } + }, + "sequelize-pool": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-6.1.0.tgz", + "integrity": "sha512-4YwEw3ZgK/tY/so+GfnSgXkdwIJJ1I32uZJztIEgZeAO6HMgj64OzySbWLgxj+tXhZCJnzRfkY9gINw8Ft8ZMg==" + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -331,21 +2990,130 @@ "send": "0.17.1" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "sqlite3": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz", + "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", + "requires": { + "node-addon-api": "^3.0.0", + "node-gyp": "3.x", + "node-pre-gyp": "^0.11.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "optional": 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" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" + }, + "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==", + "optional": true, + "requires": { + "psl": "^1.1.28", + "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=", + "optional": 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=", + "optional": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -360,15 +3128,85 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "optional": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "validator": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", + "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "requires": { + "@types/node": "*" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/package.json b/package.json index 944e450..641a4d3 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,10 @@ }, "homepage": "https://github.com/code-differently/Pokedex-App#readme", "dependencies": { - "express": "^4.17.1" + "cors": "^2.8.5", + "express": "^4.17.1", + "node-fetch": "^2.6.1", + "sequelize": "^6.5.0", + "sqlite3": "^5.0.2" } } diff --git a/rest/index.js b/rest/index.js index bba5463..010a631 100644 --- a/rest/index.js +++ b/rest/index.js @@ -1,11 +1,34 @@ -const express = require('express') +const express = require('express'); +const fetch = require('node-fetch'); +const cors = require("cors"); + const app = express() -const port = 3000 +app.use(cors()) +const port = 4000 + + -app.get('/', (req, res) => { - res.send('Hello World!') +app.get('/all/:count', async (req, response) => { + const count = req.params.count; + fetch(`https://pokeapi.co/api/v2/pokemon?limit=${count}&offset=0`) + .then((res) => res.json()) + .then((allThePokemon) => { + const requestsToMake = allThePokemon.results.map(({ url }) => + fetch(url).then((res) => res.json()) + ); + return Promise.all(requestsToMake); + }) + .then(data => { + let responseResult = []; + for( let i = 0; i < count; i++){ + let responseObject = { id: data[i].id, name: data[i].name, type: data[i].types[0].type.name, image: data[i].sprites.front_default}; + responseResult.push(responseObject); + } + response.json(responseResult); + }) + .catch(err => console.error(err)); }) app.listen(port, () => { - console.log(`Example app listening at http://localhost:${port}`) + console.log(`Pokemon Server is now running at http://localhost:${port}`) }) \ No newline at end of file diff --git a/web/index.html b/web/index.html index 1de928b..a53cb78 100644 --- a/web/index.html +++ b/web/index.html @@ -1,11 +1,22 @@ - - - - Document - - -

Hello Pokemon!

- + + + + Pokedex + + + +

Pokedex

+ +
+ + + +
+ +
+ + + \ No newline at end of file diff --git a/web/index.js b/web/index.js new file mode 100644 index 0000000..d3c78c6 --- /dev/null +++ b/web/index.js @@ -0,0 +1,33 @@ +const button = document.querySelector("button"); +const inputText = document.querySelector("#numberOfPokemons"); +const container = document.querySelector(".container"); + +button.addEventListener("click", () => { + let input = inputText.value; + fetch(`http://localhost:4000/all/${input}`) + .then((res) => res.json()) + .then((pokemon) => { + + pokemon.map(i =>showPokemon(i.id, i.name, i.type, i.image)); + + }); + }); + +function showPokemon(id, name, type, image){ + + let div = document.createElement('div'); + let divInnerHtml = + `
+
+
+

${name}

+

#${id}

+
+
+ +
` + div.innerHTML = divInnerHtml; + div.classList.add(type); + container.appendChild(div); +} \ No newline at end of file diff --git a/web/pokemon.css b/web/pokemon.css new file mode 100644 index 0000000..576811f --- /dev/null +++ b/web/pokemon.css @@ -0,0 +1,186 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box +} + +h1 { + font-size: 4rem; + margin-top: 3rem; + margin-bottom: 3rem; + text-align: center; + text-shadow: 0 1px 0 #ccc, + 0 2px 0 #c9c9c9, + 0 3px 0 #bbb, + 0 4px 0 #b9b9b9, + 0 5px 0 #aaa, + 0 6px 1px rgba(0,0,0,.1), + 0 0 5px rgba(0,0,0,.1), + 0 1px 3px rgba(0,0,0,.3), + 0 3px 5px rgba(0,0,0,.2), + 0 5px 10px rgba(0,0,0,.25), + 0 10px 10px rgba(0,0,0,.2), + 0 20px 20px rgba(0,0,0,.15); +} + +.container { + display: grid; + margin:1rem; + justify-content: space-evenly; + grid-gap: 1.5rem; +} + +.col { + grid-template-columns: auto auto auto auto; +} + +.pButton { + margin-left: 3rem; + margin-bottom: 5rem; +} + +button { + background-image: linear-gradient(130deg,lightgray,black); + padding: .1rem; + color: white; +} + +button:hover { + cursor:pointer; + background-image: linear-gradient(130deg, black,lightgray); + color:white; + } + +input { + text-align: right; + max-width: 4rem; + padding-right: .25rem; + border-style: solid; + border-radius: 3%; + font-weight:bold; + padding: .1rem; +} + +/* Card Properties */ +.card { + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); + padding-bottom: 2rem; + border-style:solid; + border-radius: 10%; +} + +h4.pName { + display: float; + float: left; + padding-right: 2rem; + font-weight: bold; +} + +h4.pNum { + display: float; + float: right; + padding-left: 2rem; + font-weight: bold; +} + +.line { + height: 1.75rem; + border-bottom: .1rem inset lightgrey; + border-bottom-width: 90%; +} +img { + margin-left: auto; + margin-right: auto; +} + +/* Card Background colors bases on Pokemon Types */ +.bug { + background-color: #3b9950; + border-radius: 10%; +} + +.dark { + background-color: #5a5979; + border-radius: 10%; +} + +.dragon { + background-color: #61cad9; + border-radius: 10%; +} + +.electric { + background-color: #fbfb71; + border-radius: 10%; +} + +.fairy { + background-color: #ea1169; + border-radius: 10%; +} + +.fighting { + background-color: #ef6138; + border-radius: 10%; +} + + +.fire { + background-color: #fd4c59; + border-radius: 10%; +} + +.flying { + background-color: #93b2c7; + border-radius: 10%; +} + +.ghost { + background-color: #906790; + border-radius: 10%; +} + +.grass { + background-color: #26cb4f; + border-radius: 10%; +} + +.ground { + background-color: #6e491f; + border-radius: 10%; +} + +.ice { + background-color: #d9eefa; + border-radius: 10%; +} + +.normal { + background-color: #c998a7; + border-radius: 10%; +} + +.poison { + background-color: #9b69d8; + border-radius: 10%; +} + +.psychic { + background-color: #f71c91; + border-radius: 10%; +} + +.rock { + background-color: #8a3d22; + border-radius: 10%; +} + +.steel { + background-color: #42bd94; + border-radius: 10%; +} + +.water { + background-color: #86a9fa; + border-radius: 10%; +}; From 5ac2f0dacd480110671c158a7269bce2996ac230 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Sun, 28 Feb 2021 22:50:22 -0500 Subject: [PATCH 02/23] added pokemon.db --- app.js | 15 +++++++++++++++ pokemon.db | 0 rest/index.js | 1 + 3 files changed, 16 insertions(+) create mode 100644 app.js create mode 100644 pokemon.db diff --git a/app.js b/app.js new file mode 100644 index 0000000..5e804ac --- /dev/null +++ b/app.js @@ -0,0 +1,15 @@ +const Sequelize = require('sequelize'); + +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: 'pokemon.db' + }); + + (async () => { + try { + await sequelize.authenticate(); + console.log('Pokemon database created!'); + } catch (error) { + console.error('Error connecting to the database: ', error); + } + })(); \ No newline at end of file diff --git a/pokemon.db b/pokemon.db new file mode 100644 index 0000000..e69de29 diff --git a/rest/index.js b/rest/index.js index 010a631..890e0c2 100644 --- a/rest/index.js +++ b/rest/index.js @@ -1,6 +1,7 @@ const express = require('express'); const fetch = require('node-fetch'); const cors = require("cors"); +const Sequelize = require('sequelize'); const app = express() app.use(cors()) From 094d5e30bd4455d1d25a8ad662834a3df8e8e319 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Sun, 28 Feb 2021 23:40:57 -0500 Subject: [PATCH 03/23] added schema --- data/schema.sql | 18 ++++++++++++++++ package-lock.json | 52 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 71 insertions(+) diff --git a/data/schema.sql b/data/schema.sql index e69de29..7f64181 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -0,0 +1,18 @@ +CREATE TABLE mapping( + mappingid int PRIMARY KEY, + pokeid int, + typeid varchar(4) +); + +CREATE TABLE pokemon( + pokeid int PRIMARY KEY, + name varchar(10), + img varchar(100), + FOREIGN KEY (pokeid) REFERENCES mapping(pokeid) +); + +CREATE TABLE types( + typeid int PRIMARY KEY, + typeName varchar(10), + FOREIGN KEY (typeid) REFERENCES mapping(typeid) +); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5d1a217..74a5243 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "cors": "^2.8.5", "express": "^4.17.1", + "mysql": "^2.18.1", "node-fetch": "^2.6.1", "sequelize": "^6.5.0", "sqlite3": "^5.0.2" @@ -139,6 +140,14 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, "node_modules/block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -910,6 +919,20 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/needle": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", @@ -1539,6 +1562,14 @@ } } }, + "node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -1894,6 +1925,11 @@ "tweetnacl": "^0.14.3" } }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -2524,6 +2560,17 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + } + }, "needle": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", @@ -3015,6 +3062,11 @@ "node-pre-gyp": "^0.11.0" } }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", diff --git a/package.json b/package.json index 641a4d3..b6db7a9 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "dependencies": { "cors": "^2.8.5", "express": "^4.17.1", + "mysql": "^2.18.1", "node-fetch": "^2.6.1", "sequelize": "^6.5.0", "sqlite3": "^5.0.2" From 1ecd6dfe09883a651ea41f2595c9ee6510d0b8e7 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Mon, 1 Mar 2021 20:24:22 -0500 Subject: [PATCH 04/23] update --- rest/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/rest/index.js b/rest/index.js index 890e0c2..2ee357b 100644 --- a/rest/index.js +++ b/rest/index.js @@ -7,8 +7,6 @@ const app = express() app.use(cors()) const port = 4000 - - app.get('/all/:count', async (req, response) => { const count = req.params.count; fetch(`https://pokeapi.co/api/v2/pokemon?limit=${count}&offset=0`) From ea214490826ea2c8f80d111d60556e43032cb3f5 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Tue, 2 Mar 2021 10:21:49 -0500 Subject: [PATCH 05/23] db removed --- app.js | 15 ------------ data/schema.sql | 27 +++++++++++--------- db copy.js | 31 +++++++++++++++++++++++ db.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ pokemon.db | 0 5 files changed, 111 insertions(+), 27 deletions(-) delete mode 100644 app.js create mode 100644 db copy.js create mode 100644 db.js delete mode 100644 pokemon.db diff --git a/app.js b/app.js deleted file mode 100644 index 5e804ac..0000000 --- a/app.js +++ /dev/null @@ -1,15 +0,0 @@ -const Sequelize = require('sequelize'); - -const sequelize = new Sequelize({ - dialect: 'sqlite', - storage: 'pokemon.db' - }); - - (async () => { - try { - await sequelize.authenticate(); - console.log('Pokemon database created!'); - } catch (error) { - console.error('Error connecting to the database: ', error); - } - })(); \ No newline at end of file diff --git a/data/schema.sql b/data/schema.sql index 7f64181..d6f7623 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,18 +1,21 @@ -CREATE TABLE mapping( - mappingid int PRIMARY KEY, - pokeid int, - typeid varchar(4) -); +USE pokedex; CREATE TABLE pokemon( - pokeid int PRIMARY KEY, - name varchar(10), - img varchar(100), - FOREIGN KEY (pokeid) REFERENCES mapping(pokeid) + pokeid INT PRIMARY KEY, + name VARCHAR(20), + img VARCHAR(266) ); CREATE TABLE types( - typeid int PRIMARY KEY, - typeName varchar(10), - FOREIGN KEY (typeid) REFERENCES mapping(typeid) + pokeid INT , + typeid INT PRIMARY KEY, + typeName VARCHAR(266) +); + +CREATE TABLE mapping( + mappingid INT PRIMARY KEY AUTO_INCREMENT, + pokeid INT, + typeid INT, + FOREIGN KEY (pokeid) REFERENCES pokemon(pokeid), + FOREIGN KEY (typeid) REFERENCES types(typeid) ); \ No newline at end of file diff --git a/db copy.js b/db copy.js new file mode 100644 index 0000000..4737cb3 --- /dev/null +++ b/db copy.js @@ -0,0 +1,31 @@ +const Sequelize = require('sequelize'); + +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: 'pokedex.db' + }); + + mapping.init({ + mappingid: Sequelize.STRING, + pokeid: Sequelize.INTEGER, + typeid: Sequelize.STRING, + }, { sequelize }); + + // pokemon.init({ + // title: Sequelize.STRING, + // }, { sequelize }); + + // types.init({ + // title: Sequelize.STRING, + // }, { sequelize }); + + (async () => { + try { + await sequelize.authenticate(); + await sequelize.sync({ force: true }); + console.log('Pokedex database created...'); + console.log('mapping, pokemon, and types tables created...') + } catch (error) { + console.error('Error connecting to the database: ', error); + } + })(); \ No newline at end of file diff --git a/db.js b/db.js new file mode 100644 index 0000000..0d6831d --- /dev/null +++ b/db.js @@ -0,0 +1,65 @@ +const Sequelize = require('sequelize'); + +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: 'pokedex.db' + }); + + +class pokemon extends Sequelize.Model {} +pokemon.init({ + pokeid: Sequelize.INTEGER, + name: Sequelize.STRING, + img: Sequelize.STRING, + timestamps: false, +}, { sequelize }); + + +// class types extends Sequelize.Model {} +// types.init({ +// typeid: Sequelize.INTEGER, +// typeName: Sequelize.STRING, +// timestamps: false, +// }, { sequelize }); + + +// class mapping extends Sequelize.Model {} +// mapping.init({ +// mappingid: Sequelize.INTEGER, +// pokied: Sequelize.INTEGER, +// typeid: Sequelize.STRING, +// timestamps: false, +// }, { sequelize }); + +// mapping.belongsTo(pokeid, { foreignKey: 'pokeid'}); +// mapping.belongsTo(typeid, { foreignKey: 'typesid'}); + + +(async () => { + // await sequelize.sync({ force: false }); + + try { + + await sequelize.authenticate(); + console.log('Connection to the database successful!'); + const pokemon = await pokemon.create({ + pokeid: '25', + name: 'Pikachu', + img: "NULL" + }); + + // const types = await types.create({ + // typeid: "1", + // typeName: 'electric' + // }); + + // const mapping = await mapping.create({ + // mappingid: "", + // pokeid: '25', + // typeid: "1" + // }); + + } catch (error) { + console.error('Error connecting to the database: ', error); + } +})(); \ No newline at end of file diff --git a/pokemon.db b/pokemon.db deleted file mode 100644 index e69de29..0000000 From 12023b5e6a650f01de00abce5ebd77860c5e3159 Mon Sep 17 00:00:00 2001 From: ezotic Date: Wed, 3 Mar 2021 23:45:18 -0500 Subject: [PATCH 06/23] created mysql database and tables --- rest/createDatabase.js | 19 +++++++++++++++++++ rest/createTables.js | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 rest/createDatabase.js create mode 100644 rest/createTables.js diff --git a/rest/createDatabase.js b/rest/createDatabase.js new file mode 100644 index 0000000..497a820 --- /dev/null +++ b/rest/createDatabase.js @@ -0,0 +1,19 @@ +const mysql = require('mysql'); + +const con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##" +}); + +con.connect(function(err) { + if (err) throw err; + console.log("Connected!"); + con.query("CREATE DATABASE pokedex", function (err, result) { + if (err) throw err; + console.log("Database created"); + }); + + con.end() +}); + diff --git a/rest/createTables.js b/rest/createTables.js new file mode 100644 index 0000000..e96a154 --- /dev/null +++ b/rest/createTables.js @@ -0,0 +1,41 @@ +const mysql = require('mysql'); + +const con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##", + database: "pokedex" +}); + +con.connect(function(err) { + if (err) throw err; + console.log("Connected!"); + let sql = "CREATE TABLE pokemon( pokeid INT PRIMARY KEY, name VARCHAR(20),img VARCHAR(266))"; + con.query(sql, function (err, result) { + if (err) throw err; + console.log("pokemon table created..."); + }); +}); + + +con.connect(function(err) { + if (err) throw err; + console.log("Connected!"); + let sql = "CREATE TABLE types(pokeid INT,typeid INT PRIMARY KEY,typeName VARCHAR(266))"; + con.query(sql, function (err, result) { + if (err) throw err; + console.log("types table created..."); + }); +}); + +con.connect(function(err) { + if (err) throw err; + console.log("Connected!"); + let sql = "CREATE TABLE mapping(mappingid INT PRIMARY KEY AUTO_INCREMENT, pokeid INT, typeid INT, FOREIGN KEY (pokeid) REFERENCES pokemon(pokeid),FOREIGN KEY (typeid) REFERENCES types(typeid))"; + con.query(sql, function (err, result) { + if (err) throw err; + console.log("mapping table created..."); + }); + + con.end () +}); \ No newline at end of file From d359d7f360006febd1b9185b943aac2b62b41f7b Mon Sep 17 00:00:00 2001 From: ezotic Date: Wed, 3 Mar 2021 23:53:20 -0500 Subject: [PATCH 07/23] created mysql database and tables --- createDB.js | 22 ++++++++++++++++++++++ data/schema.sql | 27 +++++++++++++++------------ pokemon.db | 0 3 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 createDB.js delete mode 100644 pokemon.db diff --git a/createDB.js b/createDB.js new file mode 100644 index 0000000..d883a1c --- /dev/null +++ b/createDB.js @@ -0,0 +1,22 @@ + +const mysql = require('mysql'); + +const con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##" +}); + +// con.connect(function(err) { +// if (err) throw err; +// console.log("Connected to mysql!"); +// }); + +con.connect(function(err) { + if (err) throw err; + console.log("Connected to mysql.."); + con.query("CREATE DATABASE DooBBkie", function (err, result) { + if (err) throw err; + console.log("Database pokedexter created..."); + }); +}); diff --git a/data/schema.sql b/data/schema.sql index 7f64181..d6f7623 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,18 +1,21 @@ -CREATE TABLE mapping( - mappingid int PRIMARY KEY, - pokeid int, - typeid varchar(4) -); +USE pokedex; CREATE TABLE pokemon( - pokeid int PRIMARY KEY, - name varchar(10), - img varchar(100), - FOREIGN KEY (pokeid) REFERENCES mapping(pokeid) + pokeid INT PRIMARY KEY, + name VARCHAR(20), + img VARCHAR(266) ); CREATE TABLE types( - typeid int PRIMARY KEY, - typeName varchar(10), - FOREIGN KEY (typeid) REFERENCES mapping(typeid) + pokeid INT , + typeid INT PRIMARY KEY, + typeName VARCHAR(266) +); + +CREATE TABLE mapping( + mappingid INT PRIMARY KEY AUTO_INCREMENT, + pokeid INT, + typeid INT, + FOREIGN KEY (pokeid) REFERENCES pokemon(pokeid), + FOREIGN KEY (typeid) REFERENCES types(typeid) ); \ No newline at end of file diff --git a/pokemon.db b/pokemon.db deleted file mode 100644 index e69de29..0000000 From 9b27f516ff806c2ae86469679cfcb96b19dbb25b Mon Sep 17 00:00:00 2001 From: ezotic Date: Thu, 4 Mar 2021 00:07:36 -0500 Subject: [PATCH 08/23] removed sequalize --- createDB.js | 22 -------------- db copy.js | 31 -------------------- db.js | 65 ------------------------------------------ rest/createDatabase.js | 2 +- rest/createTables.js | 2 +- 5 files changed, 2 insertions(+), 120 deletions(-) delete mode 100644 createDB.js delete mode 100644 db copy.js delete mode 100644 db.js diff --git a/createDB.js b/createDB.js deleted file mode 100644 index d883a1c..0000000 --- a/createDB.js +++ /dev/null @@ -1,22 +0,0 @@ - -const mysql = require('mysql'); - -const con = mysql.createConnection({ - host: "localhost", - user: "root", - password: "linux5All##" -}); - -// con.connect(function(err) { -// if (err) throw err; -// console.log("Connected to mysql!"); -// }); - -con.connect(function(err) { - if (err) throw err; - console.log("Connected to mysql.."); - con.query("CREATE DATABASE DooBBkie", function (err, result) { - if (err) throw err; - console.log("Database pokedexter created..."); - }); -}); diff --git a/db copy.js b/db copy.js deleted file mode 100644 index 4737cb3..0000000 --- a/db copy.js +++ /dev/null @@ -1,31 +0,0 @@ -const Sequelize = require('sequelize'); - -const sequelize = new Sequelize({ - dialect: 'sqlite', - storage: 'pokedex.db' - }); - - mapping.init({ - mappingid: Sequelize.STRING, - pokeid: Sequelize.INTEGER, - typeid: Sequelize.STRING, - }, { sequelize }); - - // pokemon.init({ - // title: Sequelize.STRING, - // }, { sequelize }); - - // types.init({ - // title: Sequelize.STRING, - // }, { sequelize }); - - (async () => { - try { - await sequelize.authenticate(); - await sequelize.sync({ force: true }); - console.log('Pokedex database created...'); - console.log('mapping, pokemon, and types tables created...') - } catch (error) { - console.error('Error connecting to the database: ', error); - } - })(); \ No newline at end of file diff --git a/db.js b/db.js deleted file mode 100644 index 0d6831d..0000000 --- a/db.js +++ /dev/null @@ -1,65 +0,0 @@ -const Sequelize = require('sequelize'); - -const sequelize = new Sequelize({ - dialect: 'sqlite', - storage: 'pokedex.db' - }); - - -class pokemon extends Sequelize.Model {} -pokemon.init({ - pokeid: Sequelize.INTEGER, - name: Sequelize.STRING, - img: Sequelize.STRING, - timestamps: false, -}, { sequelize }); - - -// class types extends Sequelize.Model {} -// types.init({ -// typeid: Sequelize.INTEGER, -// typeName: Sequelize.STRING, -// timestamps: false, -// }, { sequelize }); - - -// class mapping extends Sequelize.Model {} -// mapping.init({ -// mappingid: Sequelize.INTEGER, -// pokied: Sequelize.INTEGER, -// typeid: Sequelize.STRING, -// timestamps: false, -// }, { sequelize }); - -// mapping.belongsTo(pokeid, { foreignKey: 'pokeid'}); -// mapping.belongsTo(typeid, { foreignKey: 'typesid'}); - - -(async () => { - // await sequelize.sync({ force: false }); - - try { - - await sequelize.authenticate(); - console.log('Connection to the database successful!'); - const pokemon = await pokemon.create({ - pokeid: '25', - name: 'Pikachu', - img: "NULL" - }); - - // const types = await types.create({ - // typeid: "1", - // typeName: 'electric' - // }); - - // const mapping = await mapping.create({ - // mappingid: "", - // pokeid: '25', - // typeid: "1" - // }); - - } catch (error) { - console.error('Error connecting to the database: ', error); - } -})(); \ No newline at end of file diff --git a/rest/createDatabase.js b/rest/createDatabase.js index 497a820..daa3ae5 100644 --- a/rest/createDatabase.js +++ b/rest/createDatabase.js @@ -3,7 +3,7 @@ const mysql = require('mysql'); const con = mysql.createConnection({ host: "localhost", user: "root", - password: "linux5All##" + password: "password" }); con.connect(function(err) { diff --git a/rest/createTables.js b/rest/createTables.js index e96a154..8018044 100644 --- a/rest/createTables.js +++ b/rest/createTables.js @@ -3,7 +3,7 @@ const mysql = require('mysql'); const con = mysql.createConnection({ host: "localhost", user: "root", - password: "linux5All##", + password: "password", database: "pokedex" }); From 8401a356e15fa917459aa452cb1757539f4a5bc5 Mon Sep 17 00:00:00 2001 From: ezotic Date: Thu, 4 Mar 2021 00:17:22 -0500 Subject: [PATCH 09/23] cleanup --- rest/createTables.js | 1 - rest/index.js | 1 - 2 files changed, 2 deletions(-) diff --git a/rest/createTables.js b/rest/createTables.js index 8018044..e5595b4 100644 --- a/rest/createTables.js +++ b/rest/createTables.js @@ -17,7 +17,6 @@ con.connect(function(err) { }); }); - con.connect(function(err) { if (err) throw err; console.log("Connected!"); diff --git a/rest/index.js b/rest/index.js index 2ee357b..d137799 100644 --- a/rest/index.js +++ b/rest/index.js @@ -1,7 +1,6 @@ const express = require('express'); const fetch = require('node-fetch'); const cors = require("cors"); -const Sequelize = require('sequelize'); const app = express() app.use(cors()) From 8f3983590235ae33963449af047f7c390c0c6b11 Mon Sep 17 00:00:00 2001 From: ezotic Date: Fri, 5 Mar 2021 14:57:48 -0500 Subject: [PATCH 10/23] fixing frontend --- CLEANUP/index-express.js | 32 ++++++++++++++++ CLEANUP/pokemon.js | 46 +++++++++++++++++++++++ CLEANUP/pullAPI.js | 34 +++++++++++++++++ {rest => data}/createDatabase.js | 0 {rest => data}/createTables.js | 0 rest/index.js | 64 +++++++++++++++++++------------- web/index.js | 2 +- 7 files changed, 152 insertions(+), 26 deletions(-) create mode 100644 CLEANUP/index-express.js create mode 100644 CLEANUP/pokemon.js create mode 100644 CLEANUP/pullAPI.js rename {rest => data}/createDatabase.js (100%) rename {rest => data}/createTables.js (100%) diff --git a/CLEANUP/index-express.js b/CLEANUP/index-express.js new file mode 100644 index 0000000..d137799 --- /dev/null +++ b/CLEANUP/index-express.js @@ -0,0 +1,32 @@ +const express = require('express'); +const fetch = require('node-fetch'); +const cors = require("cors"); + +const app = express() +app.use(cors()) +const port = 4000 + +app.get('/all/:count', async (req, response) => { + const count = req.params.count; + fetch(`https://pokeapi.co/api/v2/pokemon?limit=${count}&offset=0`) + .then((res) => res.json()) + .then((allThePokemon) => { + const requestsToMake = allThePokemon.results.map(({ url }) => + fetch(url).then((res) => res.json()) + ); + return Promise.all(requestsToMake); + }) + .then(data => { + let responseResult = []; + for( let i = 0; i < count; i++){ + let responseObject = { id: data[i].id, name: data[i].name, type: data[i].types[0].type.name, image: data[i].sprites.front_default}; + responseResult.push(responseObject); + } + response.json(responseResult); + }) + .catch(err => console.error(err)); +}) + +app.listen(port, () => { + console.log(`Pokemon Server is now running at http://localhost:${port}`) +}) \ No newline at end of file diff --git a/CLEANUP/pokemon.js b/CLEANUP/pokemon.js new file mode 100644 index 0000000..b7fcb27 --- /dev/null +++ b/CLEANUP/pokemon.js @@ -0,0 +1,46 @@ +const mysql = require('mysql'); +const express = require('express'); +const app = express() +const port = 4000 + +// const fetch = require('node-fetch'); +// const cors = require("cors"); +// app.use(cors()) + +app.get('/', (req, res) => { + res.send('Hello World!') +}) + +app.get("/pokemons", async (req, res) => { + let pokemonData = await getPokemonData() + res.send(pokemonData); +}) + + +app.listen(port, () => { + console.log(`Example app Listening at http://localhost:${port}`) +}) + +async function getPokemonData(){ + + const con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##", + database: "pokedex" + }); + + let data = await new Promise((resolve, reject) => { + con.query("SELECT * from pokemon", (err, result, fields) => { + (err) ? reject(err): resolve(result); + }) + }) + + con.end(); + + return data; + +} + +getPokemonData() + .then(console.log) \ No newline at end of file diff --git a/CLEANUP/pullAPI.js b/CLEANUP/pullAPI.js new file mode 100644 index 0000000..6c793f2 --- /dev/null +++ b/CLEANUP/pullAPI.js @@ -0,0 +1,34 @@ +const express = require('express'); +const fetch = require('node-fetch'); +const cors = require("cors"); + + +async function getFromAPI(){ + let promises = [] + for (let i = 1; i <= 4; i++){ + let response = axios.get(`https://pokeapi.com/api/v2/pokemon/${i}`) + promises.push(response) + } + let responses = await Promise.all(promises) + return responses.map(response => response.data).map(data => ({ + "id": data.id, + "name": data.name, + "types": data.types.map(type => type.type.name), + "img": data.sprites["other"]["official-artwork"]["front_default"] + })) + + console.log(getFromAPI) +} + + + +// let data = await getFromAPI(); + +// data.forEach(pokemon => { +// con.query(`INSERT INTO pokemon (id, name, img) VALUES (${pokemon.id}, "${pokemon.name}", "${pokemon.img}");`); +// }) + +// con.end(); + + +// loadDatabase(); \ No newline at end of file diff --git a/rest/createDatabase.js b/data/createDatabase.js similarity index 100% rename from rest/createDatabase.js rename to data/createDatabase.js diff --git a/rest/createTables.js b/data/createTables.js similarity index 100% rename from rest/createTables.js rename to data/createTables.js diff --git a/rest/index.js b/rest/index.js index d137799..2effd26 100644 --- a/rest/index.js +++ b/rest/index.js @@ -1,32 +1,46 @@ +const mysql = require('mysql'); const express = require('express'); +const app = express() +const port = 3000 + const fetch = require('node-fetch'); const cors = require("cors"); - -const app = express() app.use(cors()) -const port = 4000 - -app.get('/all/:count', async (req, response) => { - const count = req.params.count; - fetch(`https://pokeapi.co/api/v2/pokemon?limit=${count}&offset=0`) - .then((res) => res.json()) - .then((allThePokemon) => { - const requestsToMake = allThePokemon.results.map(({ url }) => - fetch(url).then((res) => res.json()) - ); - return Promise.all(requestsToMake); - }) - .then(data => { - let responseResult = []; - for( let i = 0; i < count; i++){ - let responseObject = { id: data[i].id, name: data[i].name, type: data[i].types[0].type.name, image: data[i].sprites.front_default}; - responseResult.push(responseObject); - } - response.json(responseResult); - }) - .catch(err => console.error(err)); + +app.get('/', (req, res) => { + res.send('Hello World!') +}) + +app.get("/pokemons", async (req, res) => { + let pokemonData = await getPokemonData() + res.send(pokemonData); }) + app.listen(port, () => { - console.log(`Pokemon Server is now running at http://localhost:${port}`) -}) \ No newline at end of file + console.log(`Example app Listening at http://localhost:${port}`) +}) + +async function getPokemonData(){ + + const con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##", + database: "pokedex" + }); + + let data = await new Promise((resolve, reject) => { + con.query("SELECT * from pokemon", (err, result, fields) => { + (err) ? reject(err): resolve(result); + }) + }) + + con.end(); + + return data; + +} + +getPokemonData() + .then(console.log) \ No newline at end of file diff --git a/web/index.js b/web/index.js index d3c78c6..ad4f9bc 100644 --- a/web/index.js +++ b/web/index.js @@ -4,7 +4,7 @@ const container = document.querySelector(".container"); button.addEventListener("click", () => { let input = inputText.value; - fetch(`http://localhost:4000/all/${input}`) + fetch(`http://localhost:3000/all/${input}`) .then((res) => res.json()) .then((pokemon) => { From a3fc0e3e95dbe250a3380bc0cc8426e245795d1a Mon Sep 17 00:00:00 2001 From: ezotic Date: Fri, 5 Mar 2021 16:27:06 -0500 Subject: [PATCH 11/23] added script.js --- web/index.html | 2 +- web/script.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 web/script.js diff --git a/web/index.html b/web/index.html index a53cb78..f3884e3 100644 --- a/web/index.html +++ b/web/index.html @@ -17,6 +17,6 @@

Pokedex

- + \ No newline at end of file diff --git a/web/script.js b/web/script.js new file mode 100644 index 0000000..a0cd2e5 --- /dev/null +++ b/web/script.js @@ -0,0 +1,4 @@ + +fetch("http://localhost:3000/pokemons") + .then(response => response.json()) + .then(console.log) \ No newline at end of file From 6c92c9806d72e9fc5b14af385744fbe5a40d1b61 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Sat, 6 Mar 2021 10:38:10 -0500 Subject: [PATCH 12/23] fetch fixed --- CLEANUP/index_lite.html | 18 ++++++++++++++++ .../index-express.js => rest/index-json.js | 0 rest/index.js | 21 +++++++------------ web/{ => css}/pokemon.css | 0 web/index.html | 6 +++--- web/index.js | 5 +++-- web/pokemon.js | 11 ++++++++++ web/script.js | 4 ---- 8 files changed, 43 insertions(+), 22 deletions(-) create mode 100644 CLEANUP/index_lite.html rename CLEANUP/index-express.js => rest/index-json.js (100%) rename web/{ => css}/pokemon.css (100%) create mode 100644 web/pokemon.js delete mode 100644 web/script.js diff --git a/CLEANUP/index_lite.html b/CLEANUP/index_lite.html new file mode 100644 index 0000000..a08dee1 --- /dev/null +++ b/CLEANUP/index_lite.html @@ -0,0 +1,18 @@ + + + + + + + Document + + + +

Pokedex Yo!

+ +
+ + + + + \ No newline at end of file diff --git a/CLEANUP/index-express.js b/rest/index-json.js similarity index 100% rename from CLEANUP/index-express.js rename to rest/index-json.js diff --git a/rest/index.js b/rest/index.js index 2effd26..bc14a46 100644 --- a/rest/index.js +++ b/rest/index.js @@ -1,24 +1,23 @@ const mysql = require('mysql'); const express = require('express'); -const app = express() -const port = 3000 - const fetch = require('node-fetch'); -const cors = require("cors"); -app.use(cors()) +const app = express() +const port = 5000 +// const cors = require("cors"); +// app.use(cors()) app.get('/', (req, res) => { - res.send('Hello World!') + res.send('#FlyEaglesFly') }) -app.get("/pokemons", async (req, res) => { +app.get("/pokemons", async (req, res) => { let pokemonData = await getPokemonData() res.send(pokemonData); }) app.listen(port, () => { - console.log(`Example app Listening at http://localhost:${port}`) + console.log(`Starting Pokedex app at http://localhost:${port}`) }) async function getPokemonData(){ @@ -31,7 +30,7 @@ async function getPokemonData(){ }); let data = await new Promise((resolve, reject) => { - con.query("SELECT * from pokemon", (err, result, fields) => { + con.query("SELECT * from pokemon", (err, result) => { (err) ? reject(err): resolve(result); }) }) @@ -39,8 +38,4 @@ async function getPokemonData(){ con.end(); return data; - } - -getPokemonData() - .then(console.log) \ No newline at end of file diff --git a/web/pokemon.css b/web/css/pokemon.css similarity index 100% rename from web/pokemon.css rename to web/css/pokemon.css diff --git a/web/index.html b/web/index.html index f3884e3..fb7a437 100644 --- a/web/index.html +++ b/web/index.html @@ -4,7 +4,7 @@ Pokedex - +

Pokedex

@@ -15,8 +15,8 @@

Pokedex

-
+
- + \ No newline at end of file diff --git a/web/index.js b/web/index.js index ad4f9bc..78ec6b5 100644 --- a/web/index.js +++ b/web/index.js @@ -4,10 +4,11 @@ const container = document.querySelector(".container"); button.addEventListener("click", () => { let input = inputText.value; - fetch(`http://localhost:3000/all/${input}`) + fetch(`http://localhost:4000/all/${input}`) + .then(console.log) .then((res) => res.json()) .then((pokemon) => { - + pokemon.map(i =>showPokemon(i.id, i.name, i.type, i.image)); }); diff --git a/web/pokemon.js b/web/pokemon.js new file mode 100644 index 0000000..eb02503 --- /dev/null +++ b/web/pokemon.js @@ -0,0 +1,11 @@ + +fetch("http://localhost:5000/pokemons") + .then(res => res.json()) + .then(pokemons => { + document.getElementById("pokemons").innerHTML = pokemons.map(pokemons => `
${pokemons.pokeid}: ${pokemons.name}: ${pokemons.img}
`).join("") + }) + + +// fetch("http://localhost:5000/pokemons") +// .then(res => res.json()) +// .then(console.log) diff --git a/web/script.js b/web/script.js deleted file mode 100644 index a0cd2e5..0000000 --- a/web/script.js +++ /dev/null @@ -1,4 +0,0 @@ - -fetch("http://localhost:3000/pokemons") - .then(response => response.json()) - .then(console.log) \ No newline at end of file From d9830d8a7fdb521fb6587f77a9d50f4a064c60ca Mon Sep 17 00:00:00 2001 From: ezotic Date: Sat, 6 Mar 2021 11:01:15 -0500 Subject: [PATCH 13/23] tweak index.js --- package-lock.json | 2234 +---------------------------- package.json | 6 +- rest/{index.js => db/index-db.js} | 0 rest/{ => json}/index-json.js | 0 web/index.html | 2 +- web/{ => js}/index.js | 1 - web/{ => js}/pokemon.js | 0 7 files changed, 10 insertions(+), 2233 deletions(-) rename rest/{index.js => db/index-db.js} (100%) rename rest/{ => json}/index-json.js (100%) rename web/{ => js}/index.js (97%) rename web/{ => js}/pokemon.js (100%) diff --git a/package-lock.json b/package-lock.json index 74a5243..c8b2635 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,21 +12,9 @@ "cors": "^2.8.5", "express": "^4.17.1", "mysql": "^2.18.1", - "node-fetch": "^2.6.1", - "sequelize": "^6.5.0", - "sqlite3": "^5.0.2" + "node-fetch": "^2.6.1" } }, - "node_modules/@types/node": { - "version": "14.14.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", - "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -39,107 +27,11 @@ "node": ">= 0.6" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "optional": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "optional": true - }, - "node_modules/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=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "optional": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", @@ -148,18 +40,6 @@ "node": "*" } }, - "node_modules/block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "optional": true, - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, "node_modules/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -180,15 +60,6 @@ "node": ">= 0.8" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -197,47 +68,6 @@ "node": ">= 0.8" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "optional": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -287,18 +117,6 @@ "node": ">= 0.10" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -307,28 +125,6 @@ "ms": "2.0.0" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "optional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -342,32 +138,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dottie": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", - "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -434,33 +204,6 @@ "node": ">= 0.10.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "optional": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ], - "optional": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "optional": true - }, - "node_modules/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==", - "optional": true - }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -478,29 +221,6 @@ "node": ">= 0.8" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -517,111 +237,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "optional": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "optional": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, "node_modules/http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -637,21 +252,6 @@ "node": ">= 0.6" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -663,41 +263,11 @@ "node": ">=0.10.0" } }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/inflection": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", - "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", - "engines": [ - "node >= 0.4.0" - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -706,95 +276,11 @@ "node": ">= 0.10" } }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "optional": true - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "optional": true - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "optional": true - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "optional": true - }, - "node_modules/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=", - "optional": true - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -846,74 +332,6 @@ "node": ">= 0.6" } }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.33", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", - "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", - "dependencies": { - "moment": ">= 2.9.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -933,35 +351,6 @@ "node": ">= 0.6" } }, - "node_modules/needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -970,11 +359,6 @@ "node": ">= 0.6" } }, - "node_modules/node-addon-api": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" - }, "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -983,167 +367,6 @@ "node": "4.x || >=6.0.0" } }, - "node_modules/node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "optional": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-pre-gyp/node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-pre-gyp/node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/node-pre-gyp/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "optional": true, - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1163,39 +386,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -1204,25 +394,11 @@ "node": ">= 0.8" } }, - "node_modules/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=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "optional": true - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -1240,21 +416,6 @@ "node": ">= 0.10" } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "optional": true - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -1285,20 +446,6 @@ "node": ">= 0.8" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -1313,75 +460,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "optional": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/retry-as-promised": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-3.2.0.tgz", - "integrity": "sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==", - "dependencies": { - "any-promise": "^1.3.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1392,25 +470,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -1439,78 +498,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, - "node_modules/sequelize": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.5.0.tgz", - "integrity": "sha512-owBt8fnzVy8E1OvyCyfCdVk7OOLyPVrBCMEf+CvRReC5oCyo+UqeXCtwaex9L6LM9ifZ1i3TG3sFeM5MgLK0CQ==", - "dependencies": { - "debug": "^4.1.1", - "dottie": "^2.0.0", - "inflection": "1.12.0", - "lodash": "^4.17.20", - "moment": "^2.26.0", - "moment-timezone": "^0.5.31", - "retry-as-promised": "^3.2.0", - "semver": "^7.3.2", - "sequelize-pool": "^6.0.0", - "toposort-class": "^1.0.1", - "uuid": "^8.1.0", - "validator": "^10.11.0", - "wkx": "^0.5.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependenciesMeta": { - "mariadb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-hstore": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/sequelize-pool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-6.1.0.tgz", - "integrity": "sha512-4YwEw3ZgK/tY/so+GfnSgXkdwIJJ1I32uZJztIEgZeAO6HMgj64OzySbWLgxj+tXhZCJnzRfkY9gINw8Ft8ZMg==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/sequelize/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/sequelize/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -1525,43 +512,11 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/sqlite3": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz", - "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp": "3.x", - "node-pre-gyp": "^0.11.0" - }, - "optionalDependencies": { - "node-gyp": "3.x" - }, - "peerDependencies": { - "node-gyp": "3.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, "node_modules/sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", @@ -1570,31 +525,6 @@ "node": ">= 0.6" } }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "optional": true, - "dependencies": { - "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" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -1611,49 +541,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "optional": true, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -1662,42 +549,6 @@ "node": ">=0.6" } }, - "node_modules/toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1718,15 +569,6 @@ "node": ">= 0.8" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "optional": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -1740,22 +582,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1763,114 +589,16 @@ "engines": { "node": ">= 0.8" } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { - "@types/node": { - "version": "14.14.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", - "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "optional": 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-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, "array-flatten": { @@ -1878,67 +606,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "optional": 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=", - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "optional": 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=", - "optional": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "optional": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "optional": true, - "requires": { - "inherits": "~2.0.0" - } - }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -1956,55 +628,11 @@ "type-is": "~1.6.17" } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "optional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -2042,15 +670,6 @@ "vary": "^1" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2059,22 +678,6 @@ "ms": "2.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -2085,26 +688,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "dottie": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", - "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2162,30 +745,6 @@ "vary": "~1.1.2" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "optional": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "optional": 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==", - "optional": 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==", - "optional": true - }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -2200,23 +759,6 @@ "unpipe": "~1.0.0" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": 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==", - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -2227,95 +769,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": 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==", - "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" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "optional": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "optional": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "optional": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -2328,17 +781,6 @@ "toidentifier": "1.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -2347,123 +789,21 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflection": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", - "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "optional": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "optional": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "optional": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": 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==", - "optional": 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=", - "optional": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -2497,64 +837,6 @@ "mime-db": "1.45.0" } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "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==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "moment-timezone": { - "version": "0.5.33", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", - "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", - "requires": { - "moment": ">= 2.9.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2571,180 +853,16 @@ "sqlstring": "2.3.1" } }, - "needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "node-addon-api": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "optional": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "optional": true - } - } - }, - "node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "dependencies": { - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "optional": true, - "requires": { - "abbrev": "1" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "optional": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -2758,54 +876,16 @@ "ee-first": "1.1.1" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "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=" - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "optional": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -2820,18 +900,6 @@ "ipaddr.js": "1.9.1" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "optional": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "optional": true - }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -2853,17 +921,6 @@ "unpipe": "1.0.0" } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -2878,64 +935,6 @@ "util-deprecate": "~1.0.1" } }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "optional": 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": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "optional": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "optional": true - } - } - }, - "retry-as-promised": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-3.2.0.tgz", - "integrity": "sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==", - "requires": { - "any-promise": "^1.3.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -2946,19 +945,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -2986,46 +972,6 @@ } } }, - "sequelize": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.5.0.tgz", - "integrity": "sha512-owBt8fnzVy8E1OvyCyfCdVk7OOLyPVrBCMEf+CvRReC5oCyo+UqeXCtwaex9L6LM9ifZ1i3TG3sFeM5MgLK0CQ==", - "requires": { - "debug": "^4.1.1", - "dottie": "^2.0.0", - "inflection": "1.12.0", - "lodash": "^4.17.20", - "moment": "^2.26.0", - "moment-timezone": "^0.5.31", - "retry-as-promised": "^3.2.0", - "semver": "^7.3.2", - "sequelize-pool": "^6.0.0", - "toposort-class": "^1.0.1", - "uuid": "^8.1.0", - "validator": "^10.11.0", - "wkx": "^0.5.0" - }, - "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==" - } - } - }, - "sequelize-pool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-6.1.0.tgz", - "integrity": "sha512-4YwEw3ZgK/tY/so+GfnSgXkdwIJJ1I32uZJztIEgZeAO6HMgj64OzySbWLgxj+tXhZCJnzRfkY9gINw8Ft8ZMg==" - }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -3037,53 +983,16 @@ "send": "0.17.1" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "sqlite3": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz", - "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", - "requires": { - "node-addon-api": "^3.0.0", - "node-gyp": "3.x", - "node-pre-gyp": "^0.11.0" - } - }, "sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "optional": 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" - } - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -3097,75 +1006,11 @@ "safe-buffer": "~5.1.0" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "optional": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" - }, - "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==", - "optional": true, - "requires": { - "psl": "^1.1.28", - "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=", - "optional": 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=", - "optional": true - }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -3180,15 +1025,6 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "optional": true, - "requires": { - "punycode": "^2.1.0" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -3199,66 +1035,10 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "requires": { - "@types/node": "*" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/package.json b/package.json index b6db7a9..be05086 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "mocha", - "start": "node rest/index.js" + "start": "node rest/json/index-json.js" }, "repository": { "type": "git", @@ -21,8 +21,6 @@ "cors": "^2.8.5", "express": "^4.17.1", "mysql": "^2.18.1", - "node-fetch": "^2.6.1", - "sequelize": "^6.5.0", - "sqlite3": "^5.0.2" + "node-fetch": "^2.6.1" } } diff --git a/rest/index.js b/rest/db/index-db.js similarity index 100% rename from rest/index.js rename to rest/db/index-db.js diff --git a/rest/index-json.js b/rest/json/index-json.js similarity index 100% rename from rest/index-json.js rename to rest/json/index-json.js diff --git a/web/index.html b/web/index.html index fb7a437..05ab6a4 100644 --- a/web/index.html +++ b/web/index.html @@ -17,6 +17,6 @@

Pokedex

- + \ No newline at end of file diff --git a/web/index.js b/web/js/index.js similarity index 97% rename from web/index.js rename to web/js/index.js index 78ec6b5..acdf997 100644 --- a/web/index.js +++ b/web/js/index.js @@ -5,7 +5,6 @@ const container = document.querySelector(".container"); button.addEventListener("click", () => { let input = inputText.value; fetch(`http://localhost:4000/all/${input}`) - .then(console.log) .then((res) => res.json()) .then((pokemon) => { diff --git a/web/pokemon.js b/web/js/pokemon.js similarity index 100% rename from web/pokemon.js rename to web/js/pokemon.js From 50d2033bcbf55883f34ba055d3f873ededaec581 Mon Sep 17 00:00:00 2001 From: ezotic Date: Sun, 7 Mar 2021 21:00:57 -0500 Subject: [PATCH 14/23] express/db connectivity; need to write join query to pull the type data in. --- CLEANUP/index_lite.html | 18 - web/js/pokemon.js => CLEANUP/pokem00n.js | 0 data/createTables.js | 6 +- {rest/db => data}/index-db.js | 0 {rest/json => data}/index-json.js | 0 data/pData.js | 3 + data/schema.sql | 22 +- package-lock.json | 2040 +++++++++++++++++++++- package.json | 6 +- rest/index.js | 110 ++ web/css/pokemon.css | 1 + web/js/index.js | 9 +- 12 files changed, 2175 insertions(+), 40 deletions(-) delete mode 100644 CLEANUP/index_lite.html rename web/js/pokemon.js => CLEANUP/pokem00n.js (100%) rename {rest/db => data}/index-db.js (100%) rename {rest/json => data}/index-json.js (100%) create mode 100644 data/pData.js create mode 100644 rest/index.js diff --git a/CLEANUP/index_lite.html b/CLEANUP/index_lite.html deleted file mode 100644 index a08dee1..0000000 --- a/CLEANUP/index_lite.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Document - - - -

Pokedex Yo!

- -
- - - - - \ No newline at end of file diff --git a/web/js/pokemon.js b/CLEANUP/pokem00n.js similarity index 100% rename from web/js/pokemon.js rename to CLEANUP/pokem00n.js diff --git a/data/createTables.js b/data/createTables.js index e5595b4..873c658 100644 --- a/data/createTables.js +++ b/data/createTables.js @@ -4,7 +4,7 @@ const con = mysql.createConnection({ host: "localhost", user: "root", password: "password", - database: "pokedex" + database: "pokedex3" }); con.connect(function(err) { @@ -15,7 +15,7 @@ con.connect(function(err) { if (err) throw err; console.log("pokemon table created..."); }); -}); +}), con.connect(function(err) { if (err) throw err; @@ -25,7 +25,7 @@ con.connect(function(err) { if (err) throw err; console.log("types table created..."); }); -}); +}), con.connect(function(err) { if (err) throw err; diff --git a/rest/db/index-db.js b/data/index-db.js similarity index 100% rename from rest/db/index-db.js rename to data/index-db.js diff --git a/rest/json/index-json.js b/data/index-json.js similarity index 100% rename from rest/json/index-json.js rename to data/index-json.js diff --git a/data/pData.js b/data/pData.js new file mode 100644 index 0000000..b6287b6 --- /dev/null +++ b/data/pData.js @@ -0,0 +1,3 @@ + + +[{"id":1,"name":"bulbasaur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png"},{"id":2,"name":"ivysaur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/2.png"},{"id":3,"name":"venusaur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/3.png"},{"id":4,"name":"charmander","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png"},{"id":5,"name":"charmeleon","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/5.png"},{"id":6,"name":"charizard","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png"},{"id":7,"name":"squirtle","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png"},{"id":8,"name":"wartortle","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/8.png"},{"id":9,"name":"blastoise","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/9.png"},{"id":10,"name":"caterpie","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10.png"},{"id":11,"name":"metapod","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/11.png"},{"id":12,"name":"butterfree","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/12.png"},{"id":13,"name":"weedle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/13.png"},{"id":14,"name":"kakuna","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/14.png"},{"id":15,"name":"beedrill","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/15.png"},{"id":16,"name":"pidgey","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/16.png"},{"id":17,"name":"pidgeotto","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/17.png"},{"id":18,"name":"pidgeot","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/18.png"},{"id":19,"name":"rattata","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/19.png"},{"id":20,"name":"raticate","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/20.png"},{"id":21,"name":"spearow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/21.png"},{"id":22,"name":"fearow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/22.png"},{"id":23,"name":"ekans","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/23.png"},{"id":24,"name":"arbok","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/24.png"},{"id":25,"name":"pikachu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png"},{"id":26,"name":"raichu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/26.png"},{"id":27,"name":"sandshrew","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/27.png"},{"id":28,"name":"sandslash","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/28.png"},{"id":29,"name":"nidoran-f","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/29.png"},{"id":30,"name":"nidorina","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/30.png"},{"id":31,"name":"nidoqueen","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/31.png"},{"id":32,"name":"nidoran-m","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/32.png"},{"id":33,"name":"nidorino","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/33.png"},{"id":34,"name":"nidoking","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/34.png"},{"id":35,"name":"clefairy","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png"},{"id":36,"name":"clefable","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/36.png"},{"id":37,"name":"vulpix","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/37.png"},{"id":38,"name":"ninetales","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/38.png"},{"id":39,"name":"jigglypuff","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/39.png"},{"id":40,"name":"wigglytuff","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/40.png"},{"id":41,"name":"zubat","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/41.png"},{"id":42,"name":"golbat","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/42.png"},{"id":43,"name":"oddish","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/43.png"},{"id":44,"name":"gloom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/44.png"},{"id":45,"name":"vileplume","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/45.png"},{"id":46,"name":"paras","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/46.png"},{"id":47,"name":"parasect","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/47.png"},{"id":48,"name":"venonat","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/48.png"},{"id":49,"name":"venomoth","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/49.png"},{"id":50,"name":"diglett","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/50.png"},{"id":51,"name":"dugtrio","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/51.png"},{"id":52,"name":"meowth","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/52.png"},{"id":53,"name":"persian","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/53.png"},{"id":54,"name":"psyduck","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/54.png"},{"id":55,"name":"golduck","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/55.png"},{"id":56,"name":"mankey","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/56.png"},{"id":57,"name":"primeape","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/57.png"},{"id":58,"name":"growlithe","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/58.png"},{"id":59,"name":"arcanine","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/59.png"},{"id":60,"name":"poliwag","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/60.png"},{"id":61,"name":"poliwhirl","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/61.png"},{"id":62,"name":"poliwrath","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/62.png"},{"id":63,"name":"abra","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/63.png"},{"id":64,"name":"kadabra","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/64.png"},{"id":65,"name":"alakazam","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/65.png"},{"id":66,"name":"machop","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/66.png"},{"id":67,"name":"machoke","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/67.png"},{"id":68,"name":"machamp","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/68.png"},{"id":69,"name":"bellsprout","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/69.png"},{"id":70,"name":"weepinbell","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/70.png"},{"id":71,"name":"victreebel","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/71.png"},{"id":72,"name":"tentacool","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/72.png"},{"id":73,"name":"tentacruel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/73.png"},{"id":74,"name":"geodude","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/74.png"},{"id":75,"name":"graveler","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/75.png"},{"id":76,"name":"golem","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/76.png"},{"id":77,"name":"ponyta","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/77.png"},{"id":78,"name":"rapidash","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/78.png"},{"id":79,"name":"slowpoke","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/79.png"},{"id":80,"name":"slowbro","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/80.png"},{"id":81,"name":"magnemite","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/81.png"},{"id":82,"name":"magneton","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/82.png"},{"id":83,"name":"farfetchd","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/83.png"},{"id":84,"name":"doduo","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/84.png"},{"id":85,"name":"dodrio","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/85.png"},{"id":86,"name":"seel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/86.png"},{"id":87,"name":"dewgong","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/87.png"},{"id":88,"name":"grimer","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/88.png"},{"id":89,"name":"muk","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/89.png"},{"id":90,"name":"shellder","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/90.png"},{"id":91,"name":"cloyster","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/91.png"},{"id":92,"name":"gastly","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/92.png"},{"id":93,"name":"haunter","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/93.png"},{"id":94,"name":"gengar","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/94.png"},{"id":95,"name":"onix","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/95.png"},{"id":96,"name":"drowzee","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/96.png"},{"id":97,"name":"hypno","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/97.png"},{"id":98,"name":"krabby","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/98.png"},{"id":99,"name":"kingler","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/99.png"},{"id":100,"name":"voltorb","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/100.png"},{"id":101,"name":"electrode","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/101.png"},{"id":102,"name":"exeggcute","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/102.png"},{"id":103,"name":"exeggutor","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/103.png"},{"id":104,"name":"cubone","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/104.png"},{"id":105,"name":"marowak","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/105.png"},{"id":106,"name":"hitmonlee","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/106.png"},{"id":107,"name":"hitmonchan","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/107.png"},{"id":108,"name":"lickitung","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/108.png"},{"id":109,"name":"koffing","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/109.png"},{"id":110,"name":"weezing","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/110.png"},{"id":111,"name":"rhyhorn","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/111.png"},{"id":112,"name":"rhydon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/112.png"},{"id":113,"name":"chansey","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/113.png"},{"id":114,"name":"tangela","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/114.png"},{"id":115,"name":"kangaskhan","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/115.png"},{"id":116,"name":"horsea","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/116.png"},{"id":117,"name":"seadra","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/117.png"},{"id":118,"name":"goldeen","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/118.png"},{"id":119,"name":"seaking","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/119.png"},{"id":120,"name":"staryu","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/120.png"},{"id":121,"name":"starmie","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/121.png"},{"id":122,"name":"mr-mime","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/122.png"},{"id":123,"name":"scyther","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/123.png"},{"id":124,"name":"jynx","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/124.png"},{"id":125,"name":"electabuzz","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/125.png"},{"id":126,"name":"magmar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/126.png"},{"id":127,"name":"pinsir","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/127.png"},{"id":128,"name":"tauros","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/128.png"},{"id":129,"name":"magikarp","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/129.png"},{"id":130,"name":"gyarados","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/130.png"},{"id":131,"name":"lapras","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/131.png"},{"id":132,"name":"ditto","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png"},{"id":133,"name":"eevee","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/133.png"},{"id":134,"name":"vaporeon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/134.png"},{"id":135,"name":"jolteon","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/135.png"},{"id":136,"name":"flareon","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/136.png"},{"id":137,"name":"porygon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/137.png"},{"id":138,"name":"omanyte","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/138.png"},{"id":139,"name":"omastar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/139.png"},{"id":140,"name":"kabuto","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/140.png"},{"id":141,"name":"kabutops","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/141.png"},{"id":142,"name":"aerodactyl","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/142.png"},{"id":143,"name":"snorlax","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/143.png"},{"id":144,"name":"articuno","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/144.png"},{"id":145,"name":"zapdos","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/145.png"},{"id":146,"name":"moltres","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/146.png"},{"id":147,"name":"dratini","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/147.png"},{"id":148,"name":"dragonair","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/148.png"},{"id":149,"name":"dragonite","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/149.png"},{"id":150,"name":"mewtwo","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/150.png"},{"id":151,"name":"mew","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/151.png"},{"id":152,"name":"chikorita","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/152.png"},{"id":153,"name":"bayleef","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/153.png"},{"id":154,"name":"meganium","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/154.png"},{"id":155,"name":"cyndaquil","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/155.png"},{"id":156,"name":"quilava","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/156.png"},{"id":157,"name":"typhlosion","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/157.png"},{"id":158,"name":"totodile","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/158.png"},{"id":159,"name":"croconaw","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/159.png"},{"id":160,"name":"feraligatr","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/160.png"},{"id":161,"name":"sentret","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/161.png"},{"id":162,"name":"furret","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/162.png"},{"id":163,"name":"hoothoot","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/163.png"},{"id":164,"name":"noctowl","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/164.png"},{"id":165,"name":"ledyba","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/165.png"},{"id":166,"name":"ledian","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/166.png"},{"id":167,"name":"spinarak","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/167.png"},{"id":168,"name":"ariados","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/168.png"},{"id":169,"name":"crobat","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/169.png"},{"id":170,"name":"chinchou","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/170.png"},{"id":171,"name":"lanturn","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/171.png"},{"id":172,"name":"pichu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/172.png"},{"id":173,"name":"cleffa","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/173.png"},{"id":174,"name":"igglybuff","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/174.png"},{"id":175,"name":"togepi","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/175.png"},{"id":176,"name":"togetic","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/176.png"},{"id":177,"name":"natu","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/177.png"},{"id":178,"name":"xatu","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/178.png"},{"id":179,"name":"mareep","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/179.png"},{"id":180,"name":"flaaffy","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/180.png"},{"id":181,"name":"ampharos","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/181.png"},{"id":182,"name":"bellossom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/182.png"},{"id":183,"name":"marill","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/183.png"},{"id":184,"name":"azumarill","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/184.png"},{"id":185,"name":"sudowoodo","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/185.png"},{"id":186,"name":"politoed","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/186.png"},{"id":187,"name":"hoppip","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/187.png"},{"id":188,"name":"skiploom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/188.png"},{"id":189,"name":"jumpluff","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/189.png"},{"id":190,"name":"aipom","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/190.png"},{"id":191,"name":"sunkern","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/191.png"},{"id":192,"name":"sunflora","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/192.png"},{"id":193,"name":"yanma","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/193.png"},{"id":194,"name":"wooper","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/194.png"},{"id":195,"name":"quagsire","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/195.png"},{"id":196,"name":"espeon","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/196.png"},{"id":197,"name":"umbreon","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/197.png"},{"id":198,"name":"murkrow","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/198.png"},{"id":199,"name":"slowking","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/199.png"},{"id":200,"name":"misdreavus","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/200.png"},{"id":201,"name":"unown","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/201.png"},{"id":202,"name":"wobbuffet","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/202.png"},{"id":203,"name":"girafarig","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/203.png"},{"id":204,"name":"pineco","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/204.png"},{"id":205,"name":"forretress","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/205.png"},{"id":206,"name":"dunsparce","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/206.png"},{"id":207,"name":"gligar","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/207.png"},{"id":208,"name":"steelix","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/208.png"},{"id":209,"name":"snubbull","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/209.png"},{"id":210,"name":"granbull","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/210.png"},{"id":211,"name":"qwilfish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/211.png"},{"id":212,"name":"scizor","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/212.png"},{"id":213,"name":"shuckle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/213.png"},{"id":214,"name":"heracross","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/214.png"},{"id":215,"name":"sneasel","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/215.png"},{"id":216,"name":"teddiursa","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/216.png"},{"id":217,"name":"ursaring","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/217.png"},{"id":218,"name":"slugma","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/218.png"},{"id":219,"name":"magcargo","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/219.png"},{"id":220,"name":"swinub","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/220.png"},{"id":221,"name":"piloswine","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/221.png"},{"id":222,"name":"corsola","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/222.png"},{"id":223,"name":"remoraid","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/223.png"},{"id":224,"name":"octillery","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/224.png"},{"id":225,"name":"delibird","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/225.png"},{"id":226,"name":"mantine","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/226.png"},{"id":227,"name":"skarmory","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/227.png"},{"id":228,"name":"houndour","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/228.png"},{"id":229,"name":"houndoom","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/229.png"},{"id":230,"name":"kingdra","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/230.png"},{"id":231,"name":"phanpy","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/231.png"},{"id":232,"name":"donphan","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/232.png"},{"id":233,"name":"porygon2","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/233.png"},{"id":234,"name":"stantler","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/234.png"},{"id":235,"name":"smeargle","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/235.png"},{"id":236,"name":"tyrogue","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/236.png"},{"id":237,"name":"hitmontop","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/237.png"},{"id":238,"name":"smoochum","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/238.png"},{"id":239,"name":"elekid","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/239.png"},{"id":240,"name":"magby","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/240.png"},{"id":241,"name":"miltank","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/241.png"},{"id":242,"name":"blissey","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/242.png"},{"id":243,"name":"raikou","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/243.png"},{"id":244,"name":"entei","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/244.png"},{"id":245,"name":"suicune","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/245.png"},{"id":246,"name":"larvitar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/246.png"},{"id":247,"name":"pupitar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/247.png"},{"id":248,"name":"tyranitar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/248.png"},{"id":249,"name":"lugia","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/249.png"},{"id":250,"name":"ho-oh","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/250.png"},{"id":251,"name":"celebi","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/251.png"},{"id":252,"name":"treecko","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/252.png"},{"id":253,"name":"grovyle","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/253.png"},{"id":254,"name":"sceptile","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/254.png"},{"id":255,"name":"torchic","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/255.png"},{"id":256,"name":"combusken","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/256.png"},{"id":257,"name":"blaziken","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/257.png"},{"id":258,"name":"mudkip","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/258.png"},{"id":259,"name":"marshtomp","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/259.png"},{"id":260,"name":"swampert","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/260.png"},{"id":261,"name":"poochyena","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/261.png"},{"id":262,"name":"mightyena","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/262.png"},{"id":263,"name":"zigzagoon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/263.png"},{"id":264,"name":"linoone","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/264.png"},{"id":265,"name":"wurmple","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/265.png"},{"id":266,"name":"silcoon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/266.png"},{"id":267,"name":"beautifly","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/267.png"},{"id":268,"name":"cascoon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/268.png"},{"id":269,"name":"dustox","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/269.png"},{"id":270,"name":"lotad","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/270.png"},{"id":271,"name":"lombre","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/271.png"},{"id":272,"name":"ludicolo","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/272.png"},{"id":273,"name":"seedot","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/273.png"},{"id":274,"name":"nuzleaf","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/274.png"},{"id":275,"name":"shiftry","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/275.png"},{"id":276,"name":"taillow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/276.png"},{"id":277,"name":"swellow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/277.png"},{"id":278,"name":"wingull","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/278.png"},{"id":279,"name":"pelipper","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/279.png"},{"id":280,"name":"ralts","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/280.png"},{"id":281,"name":"kirlia","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/281.png"},{"id":282,"name":"gardevoir","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/282.png"},{"id":283,"name":"surskit","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/283.png"},{"id":284,"name":"masquerain","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/284.png"},{"id":285,"name":"shroomish","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/285.png"},{"id":286,"name":"breloom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/286.png"},{"id":287,"name":"slakoth","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/287.png"},{"id":288,"name":"vigoroth","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/288.png"},{"id":289,"name":"slaking","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/289.png"},{"id":290,"name":"nincada","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/290.png"},{"id":291,"name":"ninjask","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/291.png"},{"id":292,"name":"shedinja","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/292.png"},{"id":293,"name":"whismur","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/293.png"},{"id":294,"name":"loudred","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/294.png"},{"id":295,"name":"exploud","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/295.png"},{"id":296,"name":"makuhita","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/296.png"},{"id":297,"name":"hariyama","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/297.png"},{"id":298,"name":"azurill","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/298.png"},{"id":299,"name":"nosepass","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/299.png"},{"id":300,"name":"skitty","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/300.png"},{"id":301,"name":"delcatty","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/301.png"},{"id":302,"name":"sableye","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/302.png"},{"id":303,"name":"mawile","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/303.png"},{"id":304,"name":"aron","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/304.png"},{"id":305,"name":"lairon","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/305.png"},{"id":306,"name":"aggron","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/306.png"},{"id":307,"name":"meditite","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/307.png"},{"id":308,"name":"medicham","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/308.png"},{"id":309,"name":"electrike","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/309.png"},{"id":310,"name":"manectric","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/310.png"},{"id":311,"name":"plusle","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/311.png"},{"id":312,"name":"minun","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/312.png"},{"id":313,"name":"volbeat","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/313.png"},{"id":314,"name":"illumise","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/314.png"},{"id":315,"name":"roselia","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/315.png"},{"id":316,"name":"gulpin","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/316.png"},{"id":317,"name":"swalot","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/317.png"},{"id":318,"name":"carvanha","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/318.png"},{"id":319,"name":"sharpedo","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/319.png"},{"id":320,"name":"wailmer","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/320.png"},{"id":321,"name":"wailord","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/321.png"},{"id":322,"name":"numel","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/322.png"},{"id":323,"name":"camerupt","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/323.png"},{"id":324,"name":"torkoal","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/324.png"},{"id":325,"name":"spoink","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/325.png"},{"id":326,"name":"grumpig","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/326.png"},{"id":327,"name":"spinda","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/327.png"},{"id":328,"name":"trapinch","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/328.png"},{"id":329,"name":"vibrava","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/329.png"},{"id":330,"name":"flygon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/330.png"},{"id":331,"name":"cacnea","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/331.png"},{"id":332,"name":"cacturne","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/332.png"},{"id":333,"name":"swablu","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/333.png"},{"id":334,"name":"altaria","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/334.png"},{"id":335,"name":"zangoose","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/335.png"},{"id":336,"name":"seviper","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/336.png"},{"id":337,"name":"lunatone","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/337.png"},{"id":338,"name":"solrock","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/338.png"},{"id":339,"name":"barboach","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/339.png"},{"id":340,"name":"whiscash","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/340.png"},{"id":341,"name":"corphish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/341.png"},{"id":342,"name":"crawdaunt","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/342.png"},{"id":343,"name":"baltoy","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/343.png"},{"id":344,"name":"claydol","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/344.png"},{"id":345,"name":"lileep","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/345.png"},{"id":346,"name":"cradily","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/346.png"},{"id":347,"name":"anorith","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/347.png"},{"id":348,"name":"armaldo","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/348.png"},{"id":349,"name":"feebas","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/349.png"},{"id":350,"name":"milotic","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/350.png"},{"id":351,"name":"castform","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/351.png"},{"id":352,"name":"kecleon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/352.png"},{"id":353,"name":"shuppet","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/353.png"},{"id":354,"name":"banette","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/354.png"},{"id":355,"name":"duskull","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/355.png"},{"id":356,"name":"dusclops","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/356.png"},{"id":357,"name":"tropius","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/357.png"},{"id":358,"name":"chimecho","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/358.png"},{"id":359,"name":"absol","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/359.png"},{"id":360,"name":"wynaut","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/360.png"},{"id":361,"name":"snorunt","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/361.png"},{"id":362,"name":"glalie","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/362.png"},{"id":363,"name":"spheal","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/363.png"},{"id":364,"name":"sealeo","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/364.png"},{"id":365,"name":"walrein","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/365.png"},{"id":366,"name":"clamperl","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/366.png"},{"id":367,"name":"huntail","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/367.png"},{"id":368,"name":"gorebyss","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/368.png"},{"id":369,"name":"relicanth","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/369.png"},{"id":370,"name":"luvdisc","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/370.png"},{"id":371,"name":"bagon","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/371.png"},{"id":372,"name":"shelgon","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/372.png"},{"id":373,"name":"salamence","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/373.png"},{"id":374,"name":"beldum","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/374.png"},{"id":375,"name":"metang","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/375.png"},{"id":376,"name":"metagross","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/376.png"},{"id":377,"name":"regirock","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/377.png"},{"id":378,"name":"regice","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/378.png"},{"id":379,"name":"registeel","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/379.png"},{"id":380,"name":"latias","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/380.png"},{"id":381,"name":"latios","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/381.png"},{"id":382,"name":"kyogre","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/382.png"},{"id":383,"name":"groudon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/383.png"},{"id":384,"name":"rayquaza","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/384.png"},{"id":385,"name":"jirachi","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/385.png"},{"id":386,"name":"deoxys-normal","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/386.png"},{"id":387,"name":"turtwig","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/387.png"},{"id":388,"name":"grotle","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/388.png"},{"id":389,"name":"torterra","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/389.png"},{"id":390,"name":"chimchar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/390.png"},{"id":391,"name":"monferno","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/391.png"},{"id":392,"name":"infernape","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/392.png"},{"id":393,"name":"piplup","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/393.png"},{"id":394,"name":"prinplup","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/394.png"},{"id":395,"name":"empoleon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/395.png"},{"id":396,"name":"starly","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/396.png"},{"id":397,"name":"staravia","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/397.png"},{"id":398,"name":"staraptor","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/398.png"},{"id":399,"name":"bidoof","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/399.png"},{"id":400,"name":"bibarel","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/400.png"},{"id":401,"name":"kricketot","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/401.png"},{"id":402,"name":"kricketune","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/402.png"},{"id":403,"name":"shinx","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/403.png"},{"id":404,"name":"luxio","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/404.png"},{"id":405,"name":"luxray","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/405.png"},{"id":406,"name":"budew","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/406.png"},{"id":407,"name":"roserade","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/407.png"},{"id":408,"name":"cranidos","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/408.png"},{"id":409,"name":"rampardos","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/409.png"},{"id":410,"name":"shieldon","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/410.png"},{"id":411,"name":"bastiodon","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/411.png"},{"id":412,"name":"burmy","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/412.png"},{"id":413,"name":"wormadam-plant","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/413.png"},{"id":414,"name":"mothim","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/414.png"},{"id":415,"name":"combee","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/415.png"},{"id":416,"name":"vespiquen","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/416.png"},{"id":417,"name":"pachirisu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/417.png"},{"id":418,"name":"buizel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/418.png"},{"id":419,"name":"floatzel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/419.png"},{"id":420,"name":"cherubi","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/420.png"},{"id":421,"name":"cherrim","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/421.png"},{"id":422,"name":"shellos","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/422.png"},{"id":423,"name":"gastrodon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/423.png"},{"id":424,"name":"ambipom","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/424.png"},{"id":425,"name":"drifloon","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/425.png"},{"id":426,"name":"drifblim","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/426.png"},{"id":427,"name":"buneary","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/427.png"},{"id":428,"name":"lopunny","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/428.png"},{"id":429,"name":"mismagius","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/429.png"},{"id":430,"name":"honchkrow","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/430.png"},{"id":431,"name":"glameow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/431.png"},{"id":432,"name":"purugly","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/432.png"},{"id":433,"name":"chingling","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/433.png"},{"id":434,"name":"stunky","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/434.png"},{"id":435,"name":"skuntank","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/435.png"},{"id":436,"name":"bronzor","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/436.png"},{"id":437,"name":"bronzong","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/437.png"},{"id":438,"name":"bonsly","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/438.png"},{"id":439,"name":"mime-jr","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/439.png"},{"id":440,"name":"happiny","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/440.png"},{"id":441,"name":"chatot","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/441.png"},{"id":442,"name":"spiritomb","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/442.png"},{"id":443,"name":"gible","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/443.png"},{"id":444,"name":"gabite","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/444.png"},{"id":445,"name":"garchomp","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/445.png"},{"id":446,"name":"munchlax","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/446.png"},{"id":447,"name":"riolu","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/447.png"},{"id":448,"name":"lucario","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/448.png"},{"id":449,"name":"hippopotas","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/449.png"},{"id":450,"name":"hippowdon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/450.png"},{"id":451,"name":"skorupi","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/451.png"},{"id":452,"name":"drapion","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/452.png"},{"id":453,"name":"croagunk","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/453.png"},{"id":454,"name":"toxicroak","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/454.png"},{"id":455,"name":"carnivine","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/455.png"},{"id":456,"name":"finneon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/456.png"},{"id":457,"name":"lumineon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/457.png"},{"id":458,"name":"mantyke","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/458.png"},{"id":459,"name":"snover","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/459.png"},{"id":460,"name":"abomasnow","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/460.png"},{"id":461,"name":"weavile","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/461.png"},{"id":462,"name":"magnezone","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/462.png"},{"id":463,"name":"lickilicky","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/463.png"},{"id":464,"name":"rhyperior","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/464.png"},{"id":465,"name":"tangrowth","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/465.png"},{"id":466,"name":"electivire","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/466.png"},{"id":467,"name":"magmortar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/467.png"},{"id":468,"name":"togekiss","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/468.png"},{"id":469,"name":"yanmega","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/469.png"},{"id":470,"name":"leafeon","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/470.png"},{"id":471,"name":"glaceon","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/471.png"},{"id":472,"name":"gliscor","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/472.png"},{"id":473,"name":"mamoswine","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/473.png"},{"id":474,"name":"porygon-z","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/474.png"},{"id":475,"name":"gallade","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/475.png"},{"id":476,"name":"probopass","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/476.png"},{"id":477,"name":"dusknoir","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/477.png"},{"id":478,"name":"froslass","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/478.png"},{"id":479,"name":"rotom","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/479.png"},{"id":480,"name":"uxie","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/480.png"},{"id":481,"name":"mesprit","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/481.png"},{"id":482,"name":"azelf","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/482.png"},{"id":483,"name":"dialga","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/483.png"},{"id":484,"name":"palkia","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/484.png"},{"id":485,"name":"heatran","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/485.png"},{"id":486,"name":"regigigas","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/486.png"},{"id":487,"name":"giratina-altered","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/487.png"},{"id":488,"name":"cresselia","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/488.png"},{"id":489,"name":"phione","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/489.png"},{"id":490,"name":"manaphy","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/490.png"},{"id":491,"name":"darkrai","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/491.png"},{"id":492,"name":"shaymin-land","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/492.png"},{"id":493,"name":"arceus","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/493.png"},{"id":494,"name":"victini","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/494.png"},{"id":495,"name":"snivy","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/495.png"},{"id":496,"name":"servine","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/496.png"},{"id":497,"name":"serperior","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/497.png"},{"id":498,"name":"tepig","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/498.png"},{"id":499,"name":"pignite","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/499.png"},{"id":500,"name":"emboar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/500.png"},{"id":501,"name":"oshawott","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/501.png"},{"id":502,"name":"dewott","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/502.png"},{"id":503,"name":"samurott","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/503.png"},{"id":504,"name":"patrat","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/504.png"},{"id":505,"name":"watchog","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/505.png"},{"id":506,"name":"lillipup","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/506.png"},{"id":507,"name":"herdier","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/507.png"},{"id":508,"name":"stoutland","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/508.png"},{"id":509,"name":"purrloin","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/509.png"},{"id":510,"name":"liepard","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/510.png"},{"id":511,"name":"pansage","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/511.png"},{"id":512,"name":"simisage","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/512.png"},{"id":513,"name":"pansear","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/513.png"},{"id":514,"name":"simisear","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/514.png"},{"id":515,"name":"panpour","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/515.png"},{"id":516,"name":"simipour","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/516.png"},{"id":517,"name":"munna","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/517.png"},{"id":518,"name":"musharna","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/518.png"},{"id":519,"name":"pidove","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/519.png"},{"id":520,"name":"tranquill","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/520.png"},{"id":521,"name":"unfezant","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/521.png"},{"id":522,"name":"blitzle","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/522.png"},{"id":523,"name":"zebstrika","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/523.png"},{"id":524,"name":"roggenrola","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/524.png"},{"id":525,"name":"boldore","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/525.png"},{"id":526,"name":"gigalith","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/526.png"},{"id":527,"name":"woobat","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/527.png"},{"id":528,"name":"swoobat","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/528.png"},{"id":529,"name":"drilbur","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/529.png"},{"id":530,"name":"excadrill","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/530.png"},{"id":531,"name":"audino","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/531.png"},{"id":532,"name":"timburr","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/532.png"},{"id":533,"name":"gurdurr","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/533.png"},{"id":534,"name":"conkeldurr","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/534.png"},{"id":535,"name":"tympole","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/535.png"},{"id":536,"name":"palpitoad","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/536.png"},{"id":537,"name":"seismitoad","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/537.png"},{"id":538,"name":"throh","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/538.png"},{"id":539,"name":"sawk","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/539.png"},{"id":540,"name":"sewaddle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/540.png"},{"id":541,"name":"swadloon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/541.png"},{"id":542,"name":"leavanny","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/542.png"},{"id":543,"name":"venipede","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/543.png"},{"id":544,"name":"whirlipede","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/544.png"},{"id":545,"name":"scolipede","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/545.png"},{"id":546,"name":"cottonee","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/546.png"},{"id":547,"name":"whimsicott","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/547.png"},{"id":548,"name":"petilil","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/548.png"},{"id":549,"name":"lilligant","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/549.png"},{"id":550,"name":"basculin-red-striped","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/550.png"},{"id":551,"name":"sandile","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/551.png"},{"id":552,"name":"krokorok","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/552.png"},{"id":553,"name":"krookodile","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/553.png"},{"id":554,"name":"darumaka","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/554.png"},{"id":555,"name":"darmanitan-standard","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/555.png"},{"id":556,"name":"maractus","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/556.png"},{"id":557,"name":"dwebble","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/557.png"},{"id":558,"name":"crustle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/558.png"},{"id":559,"name":"scraggy","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/559.png"},{"id":560,"name":"scrafty","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/560.png"},{"id":561,"name":"sigilyph","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/561.png"},{"id":562,"name":"yamask","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/562.png"},{"id":563,"name":"cofagrigus","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/563.png"},{"id":564,"name":"tirtouga","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/564.png"},{"id":565,"name":"carracosta","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/565.png"},{"id":566,"name":"archen","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/566.png"},{"id":567,"name":"archeops","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/567.png"},{"id":568,"name":"trubbish","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/568.png"},{"id":569,"name":"garbodor","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/569.png"},{"id":570,"name":"zorua","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/570.png"},{"id":571,"name":"zoroark","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/571.png"},{"id":572,"name":"minccino","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/572.png"},{"id":573,"name":"cinccino","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/573.png"},{"id":574,"name":"gothita","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/574.png"},{"id":575,"name":"gothorita","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/575.png"},{"id":576,"name":"gothitelle","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/576.png"},{"id":577,"name":"solosis","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/577.png"},{"id":578,"name":"duosion","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/578.png"},{"id":579,"name":"reuniclus","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/579.png"},{"id":580,"name":"ducklett","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/580.png"},{"id":581,"name":"swanna","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/581.png"},{"id":582,"name":"vanillite","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/582.png"},{"id":583,"name":"vanillish","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/583.png"},{"id":584,"name":"vanilluxe","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/584.png"},{"id":585,"name":"deerling","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/585.png"},{"id":586,"name":"sawsbuck","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/586.png"},{"id":587,"name":"emolga","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/587.png"},{"id":588,"name":"karrablast","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/588.png"},{"id":589,"name":"escavalier","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/589.png"},{"id":590,"name":"foongus","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/590.png"},{"id":591,"name":"amoonguss","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/591.png"},{"id":592,"name":"frillish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/592.png"},{"id":593,"name":"jellicent","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/593.png"},{"id":594,"name":"alomomola","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/594.png"},{"id":595,"name":"joltik","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/595.png"},{"id":596,"name":"galvantula","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/596.png"},{"id":597,"name":"ferroseed","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/597.png"},{"id":598,"name":"ferrothorn","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/598.png"},{"id":599,"name":"klink","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/599.png"},{"id":600,"name":"klang","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/600.png"},{"id":601,"name":"klinklang","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/601.png"},{"id":602,"name":"tynamo","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/602.png"},{"id":603,"name":"eelektrik","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/603.png"},{"id":604,"name":"eelektross","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/604.png"},{"id":605,"name":"elgyem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/605.png"},{"id":606,"name":"beheeyem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/606.png"},{"id":607,"name":"litwick","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/607.png"},{"id":608,"name":"lampent","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/608.png"},{"id":609,"name":"chandelure","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/609.png"},{"id":610,"name":"axew","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/610.png"},{"id":611,"name":"fraxure","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/611.png"},{"id":612,"name":"haxorus","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/612.png"},{"id":613,"name":"cubchoo","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/613.png"},{"id":614,"name":"beartic","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/614.png"},{"id":615,"name":"cryogonal","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/615.png"},{"id":616,"name":"shelmet","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/616.png"},{"id":617,"name":"accelgor","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/617.png"},{"id":618,"name":"stunfisk","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/618.png"},{"id":619,"name":"mienfoo","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/619.png"},{"id":620,"name":"mienshao","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/620.png"},{"id":621,"name":"druddigon","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/621.png"},{"id":622,"name":"golett","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/622.png"},{"id":623,"name":"golurk","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/623.png"},{"id":624,"name":"pawniard","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/624.png"},{"id":625,"name":"bisharp","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/625.png"},{"id":626,"name":"bouffalant","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/626.png"},{"id":627,"name":"rufflet","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/627.png"},{"id":628,"name":"braviary","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/628.png"},{"id":629,"name":"vullaby","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/629.png"},{"id":630,"name":"mandibuzz","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/630.png"},{"id":631,"name":"heatmor","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/631.png"},{"id":632,"name":"durant","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/632.png"},{"id":633,"name":"deino","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/633.png"},{"id":634,"name":"zweilous","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/634.png"},{"id":635,"name":"hydreigon","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/635.png"},{"id":636,"name":"larvesta","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/636.png"},{"id":637,"name":"volcarona","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/637.png"},{"id":638,"name":"cobalion","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/638.png"},{"id":639,"name":"terrakion","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/639.png"},{"id":640,"name":"virizion","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/640.png"},{"id":641,"name":"tornadus-incarnate","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/641.png"},{"id":642,"name":"thundurus-incarnate","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/642.png"},{"id":643,"name":"reshiram","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/643.png"},{"id":644,"name":"zekrom","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/644.png"},{"id":645,"name":"landorus-incarnate","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/645.png"},{"id":646,"name":"kyurem","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/646.png"},{"id":647,"name":"keldeo-ordinary","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/647.png"},{"id":648,"name":"meloetta-aria","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/648.png"},{"id":649,"name":"genesect","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/649.png"},{"id":650,"name":"chespin","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/650.png"},{"id":651,"name":"quilladin","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/651.png"},{"id":652,"name":"chesnaught","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/652.png"},{"id":653,"name":"fennekin","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/653.png"},{"id":654,"name":"braixen","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/654.png"},{"id":655,"name":"delphox","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/655.png"},{"id":656,"name":"froakie","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/656.png"},{"id":657,"name":"frogadier","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/657.png"},{"id":658,"name":"greninja","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/658.png"},{"id":659,"name":"bunnelby","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/659.png"},{"id":660,"name":"diggersby","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/660.png"},{"id":661,"name":"fletchling","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/661.png"},{"id":662,"name":"fletchinder","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/662.png"},{"id":663,"name":"talonflame","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/663.png"},{"id":664,"name":"scatterbug","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/664.png"},{"id":665,"name":"spewpa","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/665.png"},{"id":666,"name":"vivillon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/666.png"},{"id":667,"name":"litleo","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/667.png"},{"id":668,"name":"pyroar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/668.png"},{"id":669,"name":"flabebe","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/669.png"},{"id":670,"name":"floette","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/670.png"},{"id":671,"name":"florges","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/671.png"},{"id":672,"name":"skiddo","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/672.png"},{"id":673,"name":"gogoat","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/673.png"},{"id":674,"name":"pancham","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/674.png"},{"id":675,"name":"pangoro","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/675.png"},{"id":676,"name":"furfrou","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/676.png"},{"id":677,"name":"espurr","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/677.png"},{"id":678,"name":"meowstic-male","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/678.png"},{"id":679,"name":"honedge","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/679.png"},{"id":680,"name":"doublade","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/680.png"},{"id":681,"name":"aegislash-shield","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/681.png"},{"id":682,"name":"spritzee","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/682.png"},{"id":683,"name":"aromatisse","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/683.png"},{"id":684,"name":"swirlix","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/684.png"},{"id":685,"name":"slurpuff","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/685.png"},{"id":686,"name":"inkay","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/686.png"},{"id":687,"name":"malamar","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/687.png"},{"id":688,"name":"binacle","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/688.png"},{"id":689,"name":"barbaracle","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/689.png"},{"id":690,"name":"skrelp","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/690.png"},{"id":691,"name":"dragalge","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/691.png"},{"id":692,"name":"clauncher","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/692.png"},{"id":693,"name":"clawitzer","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/693.png"},{"id":694,"name":"helioptile","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/694.png"},{"id":695,"name":"heliolisk","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/695.png"},{"id":696,"name":"tyrunt","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/696.png"},{"id":697,"name":"tyrantrum","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/697.png"},{"id":698,"name":"amaura","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/698.png"},{"id":699,"name":"aurorus","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/699.png"},{"id":700,"name":"sylveon","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/700.png"},{"id":701,"name":"hawlucha","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/701.png"},{"id":702,"name":"dedenne","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/702.png"},{"id":703,"name":"carbink","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/703.png"},{"id":704,"name":"goomy","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/704.png"},{"id":705,"name":"sliggoo","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/705.png"},{"id":706,"name":"goodra","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/706.png"},{"id":707,"name":"klefki","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/707.png"},{"id":708,"name":"phantump","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/708.png"},{"id":709,"name":"trevenant","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/709.png"},{"id":710,"name":"pumpkaboo-average","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/710.png"},{"id":711,"name":"gourgeist-average","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/711.png"},{"id":712,"name":"bergmite","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/712.png"},{"id":713,"name":"avalugg","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/713.png"},{"id":714,"name":"noibat","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/714.png"},{"id":715,"name":"noivern","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/715.png"},{"id":716,"name":"xerneas","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/716.png"},{"id":717,"name":"yveltal","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/717.png"},{"id":718,"name":"zygarde","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/718.png"},{"id":719,"name":"diancie","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/719.png"},{"id":720,"name":"hoopa","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/720.png"},{"id":721,"name":"volcanion","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/721.png"},{"id":722,"name":"rowlet","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/722.png"},{"id":723,"name":"dartrix","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/723.png"},{"id":724,"name":"decidueye","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/724.png"},{"id":725,"name":"litten","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/725.png"},{"id":726,"name":"torracat","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/726.png"},{"id":727,"name":"incineroar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/727.png"},{"id":728,"name":"popplio","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/728.png"},{"id":729,"name":"brionne","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/729.png"},{"id":730,"name":"primarina","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/730.png"},{"id":731,"name":"pikipek","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/731.png"},{"id":732,"name":"trumbeak","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/732.png"},{"id":733,"name":"toucannon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/733.png"},{"id":734,"name":"yungoos","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/734.png"},{"id":735,"name":"gumshoos","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/735.png"},{"id":736,"name":"grubbin","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/736.png"},{"id":737,"name":"charjabug","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/737.png"},{"id":738,"name":"vikavolt","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/738.png"},{"id":739,"name":"crabrawler","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/739.png"},{"id":740,"name":"crabominable","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/740.png"},{"id":741,"name":"oricorio-baile","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/741.png"},{"id":742,"name":"cutiefly","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/742.png"},{"id":743,"name":"ribombee","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/743.png"},{"id":744,"name":"rockruff","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/744.png"},{"id":745,"name":"lycanroc-midday","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/745.png"},{"id":746,"name":"wishiwashi-solo","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/746.png"},{"id":747,"name":"mareanie","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/747.png"},{"id":748,"name":"toxapex","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/748.png"},{"id":749,"name":"mudbray","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/749.png"},{"id":750,"name":"mudsdale","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/750.png"},{"id":751,"name":"dewpider","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/751.png"},{"id":752,"name":"araquanid","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/752.png"},{"id":753,"name":"fomantis","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/753.png"},{"id":754,"name":"lurantis","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/754.png"},{"id":755,"name":"morelull","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/755.png"},{"id":756,"name":"shiinotic","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/756.png"},{"id":757,"name":"salandit","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/757.png"},{"id":758,"name":"salazzle","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/758.png"},{"id":759,"name":"stufful","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/759.png"},{"id":760,"name":"bewear","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/760.png"},{"id":761,"name":"bounsweet","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/761.png"},{"id":762,"name":"steenee","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/762.png"},{"id":763,"name":"tsareena","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/763.png"},{"id":764,"name":"comfey","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/764.png"},{"id":765,"name":"oranguru","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/765.png"},{"id":766,"name":"passimian","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/766.png"},{"id":767,"name":"wimpod","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/767.png"},{"id":768,"name":"golisopod","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/768.png"},{"id":769,"name":"sandygast","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/769.png"},{"id":770,"name":"palossand","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/770.png"},{"id":771,"name":"pyukumuku","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/771.png"},{"id":772,"name":"type-null","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/772.png"},{"id":773,"name":"silvally","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/773.png"},{"id":774,"name":"minior-red-meteor","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/774.png"},{"id":775,"name":"komala","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/775.png"},{"id":776,"name":"turtonator","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/776.png"},{"id":777,"name":"togedemaru","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/777.png"},{"id":778,"name":"mimikyu-disguised","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/778.png"},{"id":779,"name":"bruxish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/779.png"},{"id":780,"name":"drampa","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/780.png"},{"id":781,"name":"dhelmise","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/781.png"},{"id":782,"name":"jangmo-o","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/782.png"},{"id":783,"name":"hakamo-o","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/783.png"},{"id":784,"name":"kommo-o","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/784.png"},{"id":785,"name":"tapu-koko","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/785.png"},{"id":786,"name":"tapu-lele","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/786.png"},{"id":787,"name":"tapu-bulu","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/787.png"},{"id":788,"name":"tapu-fini","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/788.png"},{"id":789,"name":"cosmog","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/789.png"},{"id":790,"name":"cosmoem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/790.png"},{"id":791,"name":"solgaleo","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/791.png"},{"id":792,"name":"lunala","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/792.png"},{"id":793,"name":"nihilego","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/793.png"},{"id":794,"name":"buzzwole","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/794.png"},{"id":795,"name":"pheromosa","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/795.png"},{"id":796,"name":"xurkitree","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/796.png"},{"id":797,"name":"celesteela","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/797.png"},{"id":798,"name":"kartana","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/798.png"},{"id":799,"name":"guzzlord","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/799.png"},{"id":800,"name":"necrozma","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/800.png"},{"id":801,"name":"magearna","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/801.png"},{"id":802,"name":"marshadow","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/802.png"},{"id":803,"name":"poipole","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/803.png"},{"id":804,"name":"naganadel","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/804.png"},{"id":805,"name":"stakataka","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/805.png"},{"id":806,"name":"blacephalon","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/806.png"},{"id":807,"name":"zeraora","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/807.png"},{"id":808,"name":"meltan","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/808.png"},{"id":809,"name":"melmetal","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/809.png"},{"id":810,"name":"grookey","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/810.png"},{"id":811,"name":"thwackey","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/811.png"},{"id":812,"name":"rillaboom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/812.png"},{"id":813,"name":"scorbunny","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/813.png"},{"id":814,"name":"raboot","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/814.png"},{"id":815,"name":"cinderace","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/815.png"},{"id":816,"name":"sobble","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/816.png"},{"id":817,"name":"drizzile","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/817.png"},{"id":818,"name":"inteleon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/818.png"},{"id":819,"name":"skwovet","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/819.png"},{"id":820,"name":"greedent","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/820.png"},{"id":821,"name":"rookidee","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/821.png"},{"id":822,"name":"corvisquire","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/822.png"},{"id":823,"name":"corviknight","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/823.png"},{"id":824,"name":"blipbug","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/824.png"},{"id":825,"name":"dottler","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/825.png"},{"id":826,"name":"orbeetle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/826.png"},{"id":827,"name":"nickit","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/827.png"},{"id":828,"name":"thievul","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/828.png"},{"id":829,"name":"gossifleur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/829.png"},{"id":830,"name":"eldegoss","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/830.png"},{"id":831,"name":"wooloo","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/831.png"},{"id":832,"name":"dubwool","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/832.png"},{"id":833,"name":"chewtle","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/833.png"},{"id":834,"name":"drednaw","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/834.png"},{"id":835,"name":"yamper","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/835.png"},{"id":836,"name":"boltund","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/836.png"},{"id":837,"name":"rolycoly","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/837.png"},{"id":838,"name":"carkol","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/838.png"},{"id":839,"name":"coalossal","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/839.png"},{"id":840,"name":"applin","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/840.png"},{"id":841,"name":"flapple","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/841.png"},{"id":842,"name":"appletun","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/842.png"},{"id":843,"name":"silicobra","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/843.png"},{"id":844,"name":"sandaconda","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/844.png"},{"id":845,"name":"cramorant","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/845.png"},{"id":846,"name":"arrokuda","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/846.png"},{"id":847,"name":"barraskewda","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/847.png"},{"id":848,"name":"toxel","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/848.png"},{"id":849,"name":"toxtricity-amped","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/849.png"},{"id":850,"name":"sizzlipede","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/850.png"},{"id":851,"name":"centiskorch","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/851.png"},{"id":852,"name":"clobbopus","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/852.png"},{"id":853,"name":"grapploct","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/853.png"},{"id":854,"name":"sinistea","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/854.png"},{"id":855,"name":"polteageist","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/855.png"},{"id":856,"name":"hatenna","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/856.png"},{"id":857,"name":"hattrem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/857.png"},{"id":858,"name":"hatterene","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/858.png"},{"id":859,"name":"impidimp","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/859.png"},{"id":860,"name":"morgrem","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/860.png"},{"id":861,"name":"grimmsnarl","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/861.png"},{"id":862,"name":"obstagoon","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/862.png"},{"id":863,"name":"perrserker","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/863.png"},{"id":864,"name":"cursola","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/864.png"},{"id":865,"name":"sirfetchd","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/865.png"},{"id":866,"name":"mr-rime","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/866.png"},{"id":867,"name":"runerigus","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/867.png"},{"id":868,"name":"milcery","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/868.png"},{"id":869,"name":"alcremie","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/869.png"},{"id":870,"name":"falinks","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/870.png"},{"id":871,"name":"pincurchin","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/871.png"},{"id":872,"name":"snom","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/872.png"},{"id":873,"name":"frosmoth","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/873.png"},{"id":874,"name":"stonjourner","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/874.png"},{"id":875,"name":"eiscue-ice","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/875.png"},{"id":876,"name":"indeedee-male","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/876.png"},{"id":877,"name":"morpeko","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/877.png"},{"id":878,"name":"cufant","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/878.png"},{"id":879,"name":"copperajah","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/879.png"},{"id":880,"name":"dracozolt","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/880.png"},{"id":881,"name":"arctozolt","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/881.png"},{"id":882,"name":"dracovish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/882.png"},{"id":883,"name":"arctovish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/883.png"},{"id":884,"name":"duraludon","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/884.png"},{"id":885,"name":"dreepy","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/885.png"},{"id":886,"name":"drakloak","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/886.png"},{"id":887,"name":"dragapult","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/887.png"},{"id":888,"name":"zacian-hero","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/888.png"},{"id":889,"name":"zamazenta-hero","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/889.png"},{"id":890,"name":"eternatus","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/890.png"},{"id":891,"name":"kubfu","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/891.png"},{"id":892,"name":"urshifu-single-strike","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/892.png"},{"id":893,"name":"zarude","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/893.png"},{"id":894,"name":"regieleki","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/894.png"},{"id":895,"name":"regidrago","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/895.png"},{"id":896,"name":"glastrier","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/896.png"},{"id":897,"name":"spectrier","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/897.png"},{"id":898,"name":"calyrex","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/898.png"}] \ No newline at end of file diff --git a/data/schema.sql b/data/schema.sql index d6f7623..2f3cfb2 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,21 +1,21 @@ +CREATE DATABASE pokedex; USE pokedex; CREATE TABLE pokemon( - pokeid INT PRIMARY KEY, - name VARCHAR(20), - img VARCHAR(266) + id INT PRIMARY KEY, + name VARCHAR(256), + img VARCHAR(50) ); CREATE TABLE types( - pokeid INT , - typeid INT PRIMARY KEY, - typeName VARCHAR(266) + id INT PRIMARY KEY NOT NULL, + name VARCHAR(32) ); CREATE TABLE mapping( - mappingid INT PRIMARY KEY AUTO_INCREMENT, - pokeid INT, - typeid INT, - FOREIGN KEY (pokeid) REFERENCES pokemon(pokeid), - FOREIGN KEY (typeid) REFERENCES types(typeid) + id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, + pokeId INT NOT NULL, + FOREIGN KEY (pokeId) REFERENCES pokemon(id), + typeId INT NOT NULL, + FOREIGN KEY (typeId) REFERENCES types(id) ); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c8b2635..b34a396 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,38 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "axios": "^0.21.1", "cors": "^2.8.5", "express": "^4.17.1", "mysql": "^2.18.1", - "node-fetch": "^2.6.1" + "node-fetch": "^2.6.1", + "nodemon": "^2.0.7" } }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -27,11 +53,111 @@ "node": ">= 0.6" } }, + "node_modules/ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dependencies": { + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dependencies": { + "follow-redirects": "^1.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, "node_modules/bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", @@ -40,6 +166,14 @@ "node": "*" } }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, "node_modules/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -60,6 +194,47 @@ "node": ">= 0.8" } }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -68,6 +243,165 @@ "node": ">= 0.8" } }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/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==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -117,6 +451,14 @@ "node": ">= 0.10" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -125,6 +467,30 @@ "ms": "2.0.0" } }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -138,11 +504,32 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "node_modules/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==" + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -151,6 +538,22 @@ "node": ">= 0.8" } }, + "node_modules/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==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -204,6 +607,17 @@ "node": ">= 0.10.0" } }, + "node_modules/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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -221,6 +635,25 @@ "node": ">= 0.8" } }, + "node_modules/follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -237,6 +670,102 @@ "node": ">= 0.6" } }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, "node_modules/http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -263,11 +792,37 @@ "node": ">=0.10.0" } }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -276,11 +831,171 @@ "node": ">= 0.10" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -332,6 +1047,30 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -367,6 +1106,77 @@ "node": "4.x || >=6.0.0" } }, + "node_modules/nodemon": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", + "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -386,6 +1196,44 @@ "node": ">= 0.8" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -399,6 +1247,25 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "engines": { + "node": ">=4" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -416,6 +1283,31 @@ "node": ">= 0.10" } }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -446,6 +1338,20 @@ "node": ">= 0.8" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -460,6 +1366,47 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -470,6 +1417,33 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -517,6 +1491,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, "node_modules/sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", @@ -541,6 +1520,79 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -549,6 +1601,25 @@ "node": ">=0.6" } }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -561,6 +1632,33 @@ "node": ">= 0.6" } }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -569,6 +1667,43 @@ "node": ">= 0.8" } }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -587,11 +1722,64 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "engines": { - "node": ">= 0.8" + "node": ">= 0.8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/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==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" } } }, "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -601,16 +1789,99 @@ "negotiator": "0.6.2" } }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, "bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -628,11 +1899,165 @@ "type-is": "~1.6.17" } }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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==", + "requires": { + "fill-range": "^7.0.1" + } + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "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==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^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==", + "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==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -670,6 +2095,11 @@ "vary": "^1" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -678,6 +2108,24 @@ "ms": "2.0.0" } }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -688,16 +2136,47 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "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==" + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "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==", + "requires": { + "once": "^1.4.0" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -745,6 +2224,14 @@ "vary": "~1.1.2" } }, + "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==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -759,6 +2246,11 @@ "unpipe": "~1.0.0" } }, + "follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -769,6 +2261,74 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": 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==", + "requires": { + "pump": "^3.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "requires": { + "ini": "1.3.7" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -789,21 +2349,155 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "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==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "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==" + } + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -837,6 +2531,24 @@ "mime-db": "1.45.0" } }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "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==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -863,6 +2575,56 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, + "nodemon": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", + "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -876,6 +2638,37 @@ "ee-first": "1.1.1" } }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -886,6 +2679,16 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -900,6 +2703,28 @@ "ipaddr.js": "1.9.1" } }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "requires": { + "escape-goat": "^2.0.0" + } + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -921,6 +2746,17 @@ "unpipe": "1.0.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -935,6 +2771,38 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -945,6 +2813,26 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "requires": { + "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==" + } + } + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -988,6 +2876,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, "sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", @@ -1006,11 +2899,73 @@ "safe-buffer": "~5.1.0" } }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, "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", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1020,11 +2975,63 @@ "mime-types": "~2.1.24" } }, + "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==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "requires": { + "debug": "^2.2.0" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -1039,6 +3046,35 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "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==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" } } } diff --git a/package.json b/package.json index be05086..85b3964 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "mocha", - "start": "node rest/json/index-json.js" + "start": "node rest/index.js" }, "repository": { "type": "git", @@ -18,9 +18,11 @@ }, "homepage": "https://github.com/code-differently/Pokedex-App#readme", "dependencies": { + "axios": "^0.21.1", "cors": "^2.8.5", "express": "^4.17.1", "mysql": "^2.18.1", - "node-fetch": "^2.6.1" + "node-fetch": "^2.6.1", + "nodemon": "^2.0.7" } } diff --git a/rest/index.js b/rest/index.js new file mode 100644 index 0000000..877fe0f --- /dev/null +++ b/rest/index.js @@ -0,0 +1,110 @@ +const express = require('express'); +const fetch = require('node-fetch'); +const cors = require("cors"); +const mysql = require("mysql"); +const axios = require("axios"); + +const app = express() +app.use(cors()) +const port = 4000 + + +app.get('/', (req, res) => { + res.send('#FlyEaglesFly') +}) + +app.get("/pokedex", async (req, res) => { + let pokemonData = await getPokemonData() + res.send(pokemonData); + }) + + app.listen(port, () => { + console.log(`Starting Pokedex app at http://localhost:${port}`) +}) + +async function getPokemonData(){ + + const con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##", + database: "pokedex" + }); + + let data = await new Promise((resolve, reject) => { + con.query("SELECT * from pokemon", (err, result, fields) => { + (err) ? reject(err): resolve(result); + }) + }) + + con.end(); + + return data; +} + + + +async function getFromAPI(){ + let promises = [] + + for(let i = 1; i <= 300; i++){ + let response = axios.get(`https://pokeapi.co/api/v2/pokemon/${i}`) + promises.push(response) + } + + let responses = await Promise.all(promises) + + return responses.map(response => response.data).map(data => ({ + "id": data.id, + "name": data.name, + "types": data.types.map(type => type.type.name), + "img": data.sprites["other"]["official-artwork"]["front_default"] + })) +} + +async function loadDatabase(){ + + let con = mysql.createConnection({ + host: "localhost", + user: "root", + password: "linux5All##", + database: "pokedex" + }); + + + let data = await getFromAPI(); + + // Insert data int pokemon table + + data.forEach(pokemon => { + con.query(`INSERT INTO pokemon(id, name, img) VALUES (${pokemon.id}, "${pokemon.name}", "${pokemon.img}");`); + }) + + // prevents duplicate types + + let uniqueTypes = new Set(); + data.forEach(pokemon => { + pokemon.types.forEach(type =>{ + uniqueTypes.add(type) + }) + }) + uniqueTypes = [...uniqueTypes] + + + // Insert data into type table + + for(let i = 0; i < uniqueTypes.length; i++){ + con.query(`INSERT INTO type(id, name) VALUES (${i+1}, "${uniqueTypes[i]}");`) + } + + // Insert data into poke_type junction table + + data.forEach(pokemon => { + pokemon.types.forEach(type => { + let typeId= uniqueTypes.indexOf(type) +1; + con.query(`INSERT INTO poke_type (pokeId, typeId) VALUES (${pokemon.id}, ${typeId});`) + }) + }) + + con.end(); +} diff --git a/web/css/pokemon.css b/web/css/pokemon.css index 576811f..f124057 100644 --- a/web/css/pokemon.css +++ b/web/css/pokemon.css @@ -91,6 +91,7 @@ h4.pNum { img { margin-left: auto; margin-right: auto; + max-height: 10rem; } /* Card Background colors bases on Pokemon Types */ diff --git a/web/js/index.js b/web/js/index.js index acdf997..466bf59 100644 --- a/web/js/index.js +++ b/web/js/index.js @@ -4,16 +4,17 @@ const container = document.querySelector(".container"); button.addEventListener("click", () => { let input = inputText.value; - fetch(`http://localhost:4000/all/${input}`) + fetch(`http://localhost:4000/pokedex`) + // fetch(`http://localhost:4000/all/${input}`) .then((res) => res.json()) .then((pokemon) => { - pokemon.map(i =>showPokemon(i.id, i.name, i.type, i.image)); + pokemon.map(i =>showPokemon(i.id, i.name, i.type, i.img)); }); }); -function showPokemon(id, name, type, image){ +function showPokemon(id, name, type, img){ let div = document.createElement('div'); let divInnerHtml = @@ -24,7 +25,7 @@ function showPokemon(id, name, type, image){

#${id}

- ` div.innerHTML = divInnerHtml; From 46daaf947b39edd9344e277421acbf2c77849f1f Mon Sep 17 00:00:00 2001 From: earlSmith Date: Sun, 7 Mar 2021 21:02:40 -0500 Subject: [PATCH 15/23] Update pokemon.js --- CLEANUP/pokemon.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CLEANUP/pokemon.js b/CLEANUP/pokemon.js index b7fcb27..bd7ee22 100644 --- a/CLEANUP/pokemon.js +++ b/CLEANUP/pokemon.js @@ -26,7 +26,7 @@ async function getPokemonData(){ const con = mysql.createConnection({ host: "localhost", user: "root", - password: "linux5All##", + password: "******", database: "pokedex" }); @@ -43,4 +43,4 @@ async function getPokemonData(){ } getPokemonData() - .then(console.log) \ No newline at end of file + .then(console.log) From 2decba2ceb195da9a5120ab0acfe20a617f8602a Mon Sep 17 00:00:00 2001 From: ezotic Date: Sun, 7 Mar 2021 21:16:28 -0500 Subject: [PATCH 16/23] cleanup --- CLEANUP/pokem00n.js | 11 ---------- CLEANUP/pokemon.js | 46 ------------------------------------------ CLEANUP/pullAPI.js | 34 ------------------------------- data/createDatabase.js | 19 ----------------- data/createTables.js | 10 ++++----- data/index-db.js | 41 ------------------------------------- data/pData.js | 3 --- data/schema.sql | 19 ++++++++--------- 8 files changed, 15 insertions(+), 168 deletions(-) delete mode 100644 CLEANUP/pokem00n.js delete mode 100644 CLEANUP/pokemon.js delete mode 100644 CLEANUP/pullAPI.js delete mode 100644 data/createDatabase.js delete mode 100644 data/index-db.js delete mode 100644 data/pData.js diff --git a/CLEANUP/pokem00n.js b/CLEANUP/pokem00n.js deleted file mode 100644 index eb02503..0000000 --- a/CLEANUP/pokem00n.js +++ /dev/null @@ -1,11 +0,0 @@ - -fetch("http://localhost:5000/pokemons") - .then(res => res.json()) - .then(pokemons => { - document.getElementById("pokemons").innerHTML = pokemons.map(pokemons => `
${pokemons.pokeid}: ${pokemons.name}: ${pokemons.img}
`).join("") - }) - - -// fetch("http://localhost:5000/pokemons") -// .then(res => res.json()) -// .then(console.log) diff --git a/CLEANUP/pokemon.js b/CLEANUP/pokemon.js deleted file mode 100644 index bd7ee22..0000000 --- a/CLEANUP/pokemon.js +++ /dev/null @@ -1,46 +0,0 @@ -const mysql = require('mysql'); -const express = require('express'); -const app = express() -const port = 4000 - -// const fetch = require('node-fetch'); -// const cors = require("cors"); -// app.use(cors()) - -app.get('/', (req, res) => { - res.send('Hello World!') -}) - -app.get("/pokemons", async (req, res) => { - let pokemonData = await getPokemonData() - res.send(pokemonData); -}) - - -app.listen(port, () => { - console.log(`Example app Listening at http://localhost:${port}`) -}) - -async function getPokemonData(){ - - const con = mysql.createConnection({ - host: "localhost", - user: "root", - password: "******", - database: "pokedex" - }); - - let data = await new Promise((resolve, reject) => { - con.query("SELECT * from pokemon", (err, result, fields) => { - (err) ? reject(err): resolve(result); - }) - }) - - con.end(); - - return data; - -} - -getPokemonData() - .then(console.log) diff --git a/CLEANUP/pullAPI.js b/CLEANUP/pullAPI.js deleted file mode 100644 index 6c793f2..0000000 --- a/CLEANUP/pullAPI.js +++ /dev/null @@ -1,34 +0,0 @@ -const express = require('express'); -const fetch = require('node-fetch'); -const cors = require("cors"); - - -async function getFromAPI(){ - let promises = [] - for (let i = 1; i <= 4; i++){ - let response = axios.get(`https://pokeapi.com/api/v2/pokemon/${i}`) - promises.push(response) - } - let responses = await Promise.all(promises) - return responses.map(response => response.data).map(data => ({ - "id": data.id, - "name": data.name, - "types": data.types.map(type => type.type.name), - "img": data.sprites["other"]["official-artwork"]["front_default"] - })) - - console.log(getFromAPI) -} - - - -// let data = await getFromAPI(); - -// data.forEach(pokemon => { -// con.query(`INSERT INTO pokemon (id, name, img) VALUES (${pokemon.id}, "${pokemon.name}", "${pokemon.img}");`); -// }) - -// con.end(); - - -// loadDatabase(); \ No newline at end of file diff --git a/data/createDatabase.js b/data/createDatabase.js deleted file mode 100644 index daa3ae5..0000000 --- a/data/createDatabase.js +++ /dev/null @@ -1,19 +0,0 @@ -const mysql = require('mysql'); - -const con = mysql.createConnection({ - host: "localhost", - user: "root", - password: "password" -}); - -con.connect(function(err) { - if (err) throw err; - console.log("Connected!"); - con.query("CREATE DATABASE pokedex", function (err, result) { - if (err) throw err; - console.log("Database created"); - }); - - con.end() -}); - diff --git a/data/createTables.js b/data/createTables.js index 873c658..0398d10 100644 --- a/data/createTables.js +++ b/data/createTables.js @@ -3,14 +3,14 @@ const mysql = require('mysql'); const con = mysql.createConnection({ host: "localhost", user: "root", - password: "password", - database: "pokedex3" + password: "*****", + database: "pokedex" }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); - let sql = "CREATE TABLE pokemon( pokeid INT PRIMARY KEY, name VARCHAR(20),img VARCHAR(266))"; + let sql = "CREATE TABLE pokemon(id INT PRIMARY KEY NOT NULL,name VARCHAR(50),img VARCHAR(256))"; con.query(sql, function (err, result) { if (err) throw err; console.log("pokemon table created..."); @@ -20,7 +20,7 @@ con.connect(function(err) { con.connect(function(err) { if (err) throw err; console.log("Connected!"); - let sql = "CREATE TABLE types(pokeid INT,typeid INT PRIMARY KEY,typeName VARCHAR(266))"; + let sql = "CREATE TABLE type(id INT PRIMARY KEY NOT NULL,name VARCHAR(32))"; con.query(sql, function (err, result) { if (err) throw err; console.log("types table created..."); @@ -30,7 +30,7 @@ con.connect(function(err) { con.connect(function(err) { if (err) throw err; console.log("Connected!"); - let sql = "CREATE TABLE mapping(mappingid INT PRIMARY KEY AUTO_INCREMENT, pokeid INT, typeid INT, FOREIGN KEY (pokeid) REFERENCES pokemon(pokeid),FOREIGN KEY (typeid) REFERENCES types(typeid))"; + let sql = "CREATE TABLE poke_type(id INT PRIMARY KEY AUTO_INCREMENT,pokeId INT NOT NULL,typeId INT NOT NULL,FOREIGN KEY (pokeId) REFERENCES pokemon(id),FOREIGN KEY (typeId) REFERENCES type(id))"; con.query(sql, function (err, result) { if (err) throw err; console.log("mapping table created..."); diff --git a/data/index-db.js b/data/index-db.js deleted file mode 100644 index bc14a46..0000000 --- a/data/index-db.js +++ /dev/null @@ -1,41 +0,0 @@ -const mysql = require('mysql'); -const express = require('express'); -const fetch = require('node-fetch'); -const app = express() -const port = 5000 -// const cors = require("cors"); -// app.use(cors()) - -app.get('/', (req, res) => { - res.send('#FlyEaglesFly') -}) - -app.get("/pokemons", async (req, res) => { - let pokemonData = await getPokemonData() - res.send(pokemonData); -}) - - -app.listen(port, () => { - console.log(`Starting Pokedex app at http://localhost:${port}`) -}) - -async function getPokemonData(){ - - const con = mysql.createConnection({ - host: "localhost", - user: "root", - password: "linux5All##", - database: "pokedex" - }); - - let data = await new Promise((resolve, reject) => { - con.query("SELECT * from pokemon", (err, result) => { - (err) ? reject(err): resolve(result); - }) - }) - - con.end(); - - return data; -} diff --git a/data/pData.js b/data/pData.js deleted file mode 100644 index b6287b6..0000000 --- a/data/pData.js +++ /dev/null @@ -1,3 +0,0 @@ - - -[{"id":1,"name":"bulbasaur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png"},{"id":2,"name":"ivysaur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/2.png"},{"id":3,"name":"venusaur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/3.png"},{"id":4,"name":"charmander","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png"},{"id":5,"name":"charmeleon","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/5.png"},{"id":6,"name":"charizard","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png"},{"id":7,"name":"squirtle","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png"},{"id":8,"name":"wartortle","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/8.png"},{"id":9,"name":"blastoise","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/9.png"},{"id":10,"name":"caterpie","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10.png"},{"id":11,"name":"metapod","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/11.png"},{"id":12,"name":"butterfree","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/12.png"},{"id":13,"name":"weedle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/13.png"},{"id":14,"name":"kakuna","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/14.png"},{"id":15,"name":"beedrill","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/15.png"},{"id":16,"name":"pidgey","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/16.png"},{"id":17,"name":"pidgeotto","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/17.png"},{"id":18,"name":"pidgeot","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/18.png"},{"id":19,"name":"rattata","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/19.png"},{"id":20,"name":"raticate","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/20.png"},{"id":21,"name":"spearow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/21.png"},{"id":22,"name":"fearow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/22.png"},{"id":23,"name":"ekans","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/23.png"},{"id":24,"name":"arbok","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/24.png"},{"id":25,"name":"pikachu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png"},{"id":26,"name":"raichu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/26.png"},{"id":27,"name":"sandshrew","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/27.png"},{"id":28,"name":"sandslash","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/28.png"},{"id":29,"name":"nidoran-f","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/29.png"},{"id":30,"name":"nidorina","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/30.png"},{"id":31,"name":"nidoqueen","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/31.png"},{"id":32,"name":"nidoran-m","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/32.png"},{"id":33,"name":"nidorino","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/33.png"},{"id":34,"name":"nidoking","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/34.png"},{"id":35,"name":"clefairy","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png"},{"id":36,"name":"clefable","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/36.png"},{"id":37,"name":"vulpix","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/37.png"},{"id":38,"name":"ninetales","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/38.png"},{"id":39,"name":"jigglypuff","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/39.png"},{"id":40,"name":"wigglytuff","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/40.png"},{"id":41,"name":"zubat","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/41.png"},{"id":42,"name":"golbat","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/42.png"},{"id":43,"name":"oddish","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/43.png"},{"id":44,"name":"gloom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/44.png"},{"id":45,"name":"vileplume","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/45.png"},{"id":46,"name":"paras","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/46.png"},{"id":47,"name":"parasect","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/47.png"},{"id":48,"name":"venonat","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/48.png"},{"id":49,"name":"venomoth","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/49.png"},{"id":50,"name":"diglett","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/50.png"},{"id":51,"name":"dugtrio","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/51.png"},{"id":52,"name":"meowth","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/52.png"},{"id":53,"name":"persian","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/53.png"},{"id":54,"name":"psyduck","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/54.png"},{"id":55,"name":"golduck","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/55.png"},{"id":56,"name":"mankey","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/56.png"},{"id":57,"name":"primeape","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/57.png"},{"id":58,"name":"growlithe","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/58.png"},{"id":59,"name":"arcanine","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/59.png"},{"id":60,"name":"poliwag","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/60.png"},{"id":61,"name":"poliwhirl","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/61.png"},{"id":62,"name":"poliwrath","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/62.png"},{"id":63,"name":"abra","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/63.png"},{"id":64,"name":"kadabra","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/64.png"},{"id":65,"name":"alakazam","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/65.png"},{"id":66,"name":"machop","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/66.png"},{"id":67,"name":"machoke","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/67.png"},{"id":68,"name":"machamp","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/68.png"},{"id":69,"name":"bellsprout","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/69.png"},{"id":70,"name":"weepinbell","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/70.png"},{"id":71,"name":"victreebel","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/71.png"},{"id":72,"name":"tentacool","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/72.png"},{"id":73,"name":"tentacruel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/73.png"},{"id":74,"name":"geodude","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/74.png"},{"id":75,"name":"graveler","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/75.png"},{"id":76,"name":"golem","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/76.png"},{"id":77,"name":"ponyta","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/77.png"},{"id":78,"name":"rapidash","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/78.png"},{"id":79,"name":"slowpoke","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/79.png"},{"id":80,"name":"slowbro","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/80.png"},{"id":81,"name":"magnemite","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/81.png"},{"id":82,"name":"magneton","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/82.png"},{"id":83,"name":"farfetchd","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/83.png"},{"id":84,"name":"doduo","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/84.png"},{"id":85,"name":"dodrio","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/85.png"},{"id":86,"name":"seel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/86.png"},{"id":87,"name":"dewgong","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/87.png"},{"id":88,"name":"grimer","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/88.png"},{"id":89,"name":"muk","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/89.png"},{"id":90,"name":"shellder","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/90.png"},{"id":91,"name":"cloyster","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/91.png"},{"id":92,"name":"gastly","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/92.png"},{"id":93,"name":"haunter","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/93.png"},{"id":94,"name":"gengar","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/94.png"},{"id":95,"name":"onix","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/95.png"},{"id":96,"name":"drowzee","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/96.png"},{"id":97,"name":"hypno","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/97.png"},{"id":98,"name":"krabby","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/98.png"},{"id":99,"name":"kingler","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/99.png"},{"id":100,"name":"voltorb","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/100.png"},{"id":101,"name":"electrode","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/101.png"},{"id":102,"name":"exeggcute","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/102.png"},{"id":103,"name":"exeggutor","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/103.png"},{"id":104,"name":"cubone","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/104.png"},{"id":105,"name":"marowak","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/105.png"},{"id":106,"name":"hitmonlee","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/106.png"},{"id":107,"name":"hitmonchan","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/107.png"},{"id":108,"name":"lickitung","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/108.png"},{"id":109,"name":"koffing","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/109.png"},{"id":110,"name":"weezing","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/110.png"},{"id":111,"name":"rhyhorn","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/111.png"},{"id":112,"name":"rhydon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/112.png"},{"id":113,"name":"chansey","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/113.png"},{"id":114,"name":"tangela","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/114.png"},{"id":115,"name":"kangaskhan","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/115.png"},{"id":116,"name":"horsea","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/116.png"},{"id":117,"name":"seadra","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/117.png"},{"id":118,"name":"goldeen","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/118.png"},{"id":119,"name":"seaking","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/119.png"},{"id":120,"name":"staryu","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/120.png"},{"id":121,"name":"starmie","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/121.png"},{"id":122,"name":"mr-mime","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/122.png"},{"id":123,"name":"scyther","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/123.png"},{"id":124,"name":"jynx","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/124.png"},{"id":125,"name":"electabuzz","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/125.png"},{"id":126,"name":"magmar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/126.png"},{"id":127,"name":"pinsir","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/127.png"},{"id":128,"name":"tauros","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/128.png"},{"id":129,"name":"magikarp","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/129.png"},{"id":130,"name":"gyarados","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/130.png"},{"id":131,"name":"lapras","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/131.png"},{"id":132,"name":"ditto","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png"},{"id":133,"name":"eevee","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/133.png"},{"id":134,"name":"vaporeon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/134.png"},{"id":135,"name":"jolteon","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/135.png"},{"id":136,"name":"flareon","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/136.png"},{"id":137,"name":"porygon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/137.png"},{"id":138,"name":"omanyte","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/138.png"},{"id":139,"name":"omastar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/139.png"},{"id":140,"name":"kabuto","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/140.png"},{"id":141,"name":"kabutops","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/141.png"},{"id":142,"name":"aerodactyl","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/142.png"},{"id":143,"name":"snorlax","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/143.png"},{"id":144,"name":"articuno","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/144.png"},{"id":145,"name":"zapdos","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/145.png"},{"id":146,"name":"moltres","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/146.png"},{"id":147,"name":"dratini","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/147.png"},{"id":148,"name":"dragonair","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/148.png"},{"id":149,"name":"dragonite","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/149.png"},{"id":150,"name":"mewtwo","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/150.png"},{"id":151,"name":"mew","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/151.png"},{"id":152,"name":"chikorita","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/152.png"},{"id":153,"name":"bayleef","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/153.png"},{"id":154,"name":"meganium","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/154.png"},{"id":155,"name":"cyndaquil","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/155.png"},{"id":156,"name":"quilava","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/156.png"},{"id":157,"name":"typhlosion","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/157.png"},{"id":158,"name":"totodile","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/158.png"},{"id":159,"name":"croconaw","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/159.png"},{"id":160,"name":"feraligatr","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/160.png"},{"id":161,"name":"sentret","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/161.png"},{"id":162,"name":"furret","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/162.png"},{"id":163,"name":"hoothoot","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/163.png"},{"id":164,"name":"noctowl","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/164.png"},{"id":165,"name":"ledyba","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/165.png"},{"id":166,"name":"ledian","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/166.png"},{"id":167,"name":"spinarak","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/167.png"},{"id":168,"name":"ariados","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/168.png"},{"id":169,"name":"crobat","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/169.png"},{"id":170,"name":"chinchou","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/170.png"},{"id":171,"name":"lanturn","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/171.png"},{"id":172,"name":"pichu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/172.png"},{"id":173,"name":"cleffa","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/173.png"},{"id":174,"name":"igglybuff","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/174.png"},{"id":175,"name":"togepi","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/175.png"},{"id":176,"name":"togetic","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/176.png"},{"id":177,"name":"natu","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/177.png"},{"id":178,"name":"xatu","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/178.png"},{"id":179,"name":"mareep","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/179.png"},{"id":180,"name":"flaaffy","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/180.png"},{"id":181,"name":"ampharos","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/181.png"},{"id":182,"name":"bellossom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/182.png"},{"id":183,"name":"marill","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/183.png"},{"id":184,"name":"azumarill","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/184.png"},{"id":185,"name":"sudowoodo","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/185.png"},{"id":186,"name":"politoed","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/186.png"},{"id":187,"name":"hoppip","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/187.png"},{"id":188,"name":"skiploom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/188.png"},{"id":189,"name":"jumpluff","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/189.png"},{"id":190,"name":"aipom","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/190.png"},{"id":191,"name":"sunkern","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/191.png"},{"id":192,"name":"sunflora","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/192.png"},{"id":193,"name":"yanma","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/193.png"},{"id":194,"name":"wooper","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/194.png"},{"id":195,"name":"quagsire","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/195.png"},{"id":196,"name":"espeon","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/196.png"},{"id":197,"name":"umbreon","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/197.png"},{"id":198,"name":"murkrow","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/198.png"},{"id":199,"name":"slowking","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/199.png"},{"id":200,"name":"misdreavus","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/200.png"},{"id":201,"name":"unown","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/201.png"},{"id":202,"name":"wobbuffet","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/202.png"},{"id":203,"name":"girafarig","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/203.png"},{"id":204,"name":"pineco","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/204.png"},{"id":205,"name":"forretress","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/205.png"},{"id":206,"name":"dunsparce","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/206.png"},{"id":207,"name":"gligar","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/207.png"},{"id":208,"name":"steelix","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/208.png"},{"id":209,"name":"snubbull","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/209.png"},{"id":210,"name":"granbull","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/210.png"},{"id":211,"name":"qwilfish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/211.png"},{"id":212,"name":"scizor","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/212.png"},{"id":213,"name":"shuckle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/213.png"},{"id":214,"name":"heracross","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/214.png"},{"id":215,"name":"sneasel","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/215.png"},{"id":216,"name":"teddiursa","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/216.png"},{"id":217,"name":"ursaring","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/217.png"},{"id":218,"name":"slugma","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/218.png"},{"id":219,"name":"magcargo","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/219.png"},{"id":220,"name":"swinub","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/220.png"},{"id":221,"name":"piloswine","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/221.png"},{"id":222,"name":"corsola","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/222.png"},{"id":223,"name":"remoraid","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/223.png"},{"id":224,"name":"octillery","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/224.png"},{"id":225,"name":"delibird","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/225.png"},{"id":226,"name":"mantine","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/226.png"},{"id":227,"name":"skarmory","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/227.png"},{"id":228,"name":"houndour","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/228.png"},{"id":229,"name":"houndoom","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/229.png"},{"id":230,"name":"kingdra","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/230.png"},{"id":231,"name":"phanpy","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/231.png"},{"id":232,"name":"donphan","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/232.png"},{"id":233,"name":"porygon2","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/233.png"},{"id":234,"name":"stantler","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/234.png"},{"id":235,"name":"smeargle","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/235.png"},{"id":236,"name":"tyrogue","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/236.png"},{"id":237,"name":"hitmontop","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/237.png"},{"id":238,"name":"smoochum","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/238.png"},{"id":239,"name":"elekid","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/239.png"},{"id":240,"name":"magby","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/240.png"},{"id":241,"name":"miltank","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/241.png"},{"id":242,"name":"blissey","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/242.png"},{"id":243,"name":"raikou","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/243.png"},{"id":244,"name":"entei","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/244.png"},{"id":245,"name":"suicune","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/245.png"},{"id":246,"name":"larvitar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/246.png"},{"id":247,"name":"pupitar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/247.png"},{"id":248,"name":"tyranitar","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/248.png"},{"id":249,"name":"lugia","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/249.png"},{"id":250,"name":"ho-oh","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/250.png"},{"id":251,"name":"celebi","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/251.png"},{"id":252,"name":"treecko","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/252.png"},{"id":253,"name":"grovyle","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/253.png"},{"id":254,"name":"sceptile","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/254.png"},{"id":255,"name":"torchic","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/255.png"},{"id":256,"name":"combusken","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/256.png"},{"id":257,"name":"blaziken","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/257.png"},{"id":258,"name":"mudkip","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/258.png"},{"id":259,"name":"marshtomp","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/259.png"},{"id":260,"name":"swampert","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/260.png"},{"id":261,"name":"poochyena","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/261.png"},{"id":262,"name":"mightyena","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/262.png"},{"id":263,"name":"zigzagoon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/263.png"},{"id":264,"name":"linoone","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/264.png"},{"id":265,"name":"wurmple","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/265.png"},{"id":266,"name":"silcoon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/266.png"},{"id":267,"name":"beautifly","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/267.png"},{"id":268,"name":"cascoon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/268.png"},{"id":269,"name":"dustox","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/269.png"},{"id":270,"name":"lotad","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/270.png"},{"id":271,"name":"lombre","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/271.png"},{"id":272,"name":"ludicolo","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/272.png"},{"id":273,"name":"seedot","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/273.png"},{"id":274,"name":"nuzleaf","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/274.png"},{"id":275,"name":"shiftry","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/275.png"},{"id":276,"name":"taillow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/276.png"},{"id":277,"name":"swellow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/277.png"},{"id":278,"name":"wingull","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/278.png"},{"id":279,"name":"pelipper","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/279.png"},{"id":280,"name":"ralts","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/280.png"},{"id":281,"name":"kirlia","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/281.png"},{"id":282,"name":"gardevoir","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/282.png"},{"id":283,"name":"surskit","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/283.png"},{"id":284,"name":"masquerain","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/284.png"},{"id":285,"name":"shroomish","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/285.png"},{"id":286,"name":"breloom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/286.png"},{"id":287,"name":"slakoth","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/287.png"},{"id":288,"name":"vigoroth","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/288.png"},{"id":289,"name":"slaking","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/289.png"},{"id":290,"name":"nincada","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/290.png"},{"id":291,"name":"ninjask","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/291.png"},{"id":292,"name":"shedinja","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/292.png"},{"id":293,"name":"whismur","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/293.png"},{"id":294,"name":"loudred","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/294.png"},{"id":295,"name":"exploud","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/295.png"},{"id":296,"name":"makuhita","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/296.png"},{"id":297,"name":"hariyama","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/297.png"},{"id":298,"name":"azurill","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/298.png"},{"id":299,"name":"nosepass","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/299.png"},{"id":300,"name":"skitty","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/300.png"},{"id":301,"name":"delcatty","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/301.png"},{"id":302,"name":"sableye","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/302.png"},{"id":303,"name":"mawile","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/303.png"},{"id":304,"name":"aron","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/304.png"},{"id":305,"name":"lairon","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/305.png"},{"id":306,"name":"aggron","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/306.png"},{"id":307,"name":"meditite","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/307.png"},{"id":308,"name":"medicham","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/308.png"},{"id":309,"name":"electrike","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/309.png"},{"id":310,"name":"manectric","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/310.png"},{"id":311,"name":"plusle","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/311.png"},{"id":312,"name":"minun","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/312.png"},{"id":313,"name":"volbeat","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/313.png"},{"id":314,"name":"illumise","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/314.png"},{"id":315,"name":"roselia","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/315.png"},{"id":316,"name":"gulpin","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/316.png"},{"id":317,"name":"swalot","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/317.png"},{"id":318,"name":"carvanha","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/318.png"},{"id":319,"name":"sharpedo","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/319.png"},{"id":320,"name":"wailmer","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/320.png"},{"id":321,"name":"wailord","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/321.png"},{"id":322,"name":"numel","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/322.png"},{"id":323,"name":"camerupt","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/323.png"},{"id":324,"name":"torkoal","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/324.png"},{"id":325,"name":"spoink","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/325.png"},{"id":326,"name":"grumpig","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/326.png"},{"id":327,"name":"spinda","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/327.png"},{"id":328,"name":"trapinch","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/328.png"},{"id":329,"name":"vibrava","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/329.png"},{"id":330,"name":"flygon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/330.png"},{"id":331,"name":"cacnea","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/331.png"},{"id":332,"name":"cacturne","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/332.png"},{"id":333,"name":"swablu","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/333.png"},{"id":334,"name":"altaria","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/334.png"},{"id":335,"name":"zangoose","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/335.png"},{"id":336,"name":"seviper","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/336.png"},{"id":337,"name":"lunatone","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/337.png"},{"id":338,"name":"solrock","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/338.png"},{"id":339,"name":"barboach","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/339.png"},{"id":340,"name":"whiscash","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/340.png"},{"id":341,"name":"corphish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/341.png"},{"id":342,"name":"crawdaunt","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/342.png"},{"id":343,"name":"baltoy","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/343.png"},{"id":344,"name":"claydol","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/344.png"},{"id":345,"name":"lileep","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/345.png"},{"id":346,"name":"cradily","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/346.png"},{"id":347,"name":"anorith","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/347.png"},{"id":348,"name":"armaldo","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/348.png"},{"id":349,"name":"feebas","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/349.png"},{"id":350,"name":"milotic","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/350.png"},{"id":351,"name":"castform","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/351.png"},{"id":352,"name":"kecleon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/352.png"},{"id":353,"name":"shuppet","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/353.png"},{"id":354,"name":"banette","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/354.png"},{"id":355,"name":"duskull","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/355.png"},{"id":356,"name":"dusclops","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/356.png"},{"id":357,"name":"tropius","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/357.png"},{"id":358,"name":"chimecho","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/358.png"},{"id":359,"name":"absol","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/359.png"},{"id":360,"name":"wynaut","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/360.png"},{"id":361,"name":"snorunt","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/361.png"},{"id":362,"name":"glalie","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/362.png"},{"id":363,"name":"spheal","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/363.png"},{"id":364,"name":"sealeo","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/364.png"},{"id":365,"name":"walrein","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/365.png"},{"id":366,"name":"clamperl","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/366.png"},{"id":367,"name":"huntail","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/367.png"},{"id":368,"name":"gorebyss","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/368.png"},{"id":369,"name":"relicanth","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/369.png"},{"id":370,"name":"luvdisc","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/370.png"},{"id":371,"name":"bagon","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/371.png"},{"id":372,"name":"shelgon","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/372.png"},{"id":373,"name":"salamence","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/373.png"},{"id":374,"name":"beldum","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/374.png"},{"id":375,"name":"metang","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/375.png"},{"id":376,"name":"metagross","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/376.png"},{"id":377,"name":"regirock","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/377.png"},{"id":378,"name":"regice","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/378.png"},{"id":379,"name":"registeel","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/379.png"},{"id":380,"name":"latias","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/380.png"},{"id":381,"name":"latios","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/381.png"},{"id":382,"name":"kyogre","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/382.png"},{"id":383,"name":"groudon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/383.png"},{"id":384,"name":"rayquaza","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/384.png"},{"id":385,"name":"jirachi","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/385.png"},{"id":386,"name":"deoxys-normal","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/386.png"},{"id":387,"name":"turtwig","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/387.png"},{"id":388,"name":"grotle","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/388.png"},{"id":389,"name":"torterra","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/389.png"},{"id":390,"name":"chimchar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/390.png"},{"id":391,"name":"monferno","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/391.png"},{"id":392,"name":"infernape","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/392.png"},{"id":393,"name":"piplup","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/393.png"},{"id":394,"name":"prinplup","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/394.png"},{"id":395,"name":"empoleon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/395.png"},{"id":396,"name":"starly","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/396.png"},{"id":397,"name":"staravia","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/397.png"},{"id":398,"name":"staraptor","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/398.png"},{"id":399,"name":"bidoof","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/399.png"},{"id":400,"name":"bibarel","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/400.png"},{"id":401,"name":"kricketot","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/401.png"},{"id":402,"name":"kricketune","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/402.png"},{"id":403,"name":"shinx","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/403.png"},{"id":404,"name":"luxio","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/404.png"},{"id":405,"name":"luxray","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/405.png"},{"id":406,"name":"budew","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/406.png"},{"id":407,"name":"roserade","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/407.png"},{"id":408,"name":"cranidos","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/408.png"},{"id":409,"name":"rampardos","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/409.png"},{"id":410,"name":"shieldon","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/410.png"},{"id":411,"name":"bastiodon","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/411.png"},{"id":412,"name":"burmy","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/412.png"},{"id":413,"name":"wormadam-plant","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/413.png"},{"id":414,"name":"mothim","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/414.png"},{"id":415,"name":"combee","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/415.png"},{"id":416,"name":"vespiquen","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/416.png"},{"id":417,"name":"pachirisu","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/417.png"},{"id":418,"name":"buizel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/418.png"},{"id":419,"name":"floatzel","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/419.png"},{"id":420,"name":"cherubi","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/420.png"},{"id":421,"name":"cherrim","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/421.png"},{"id":422,"name":"shellos","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/422.png"},{"id":423,"name":"gastrodon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/423.png"},{"id":424,"name":"ambipom","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/424.png"},{"id":425,"name":"drifloon","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/425.png"},{"id":426,"name":"drifblim","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/426.png"},{"id":427,"name":"buneary","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/427.png"},{"id":428,"name":"lopunny","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/428.png"},{"id":429,"name":"mismagius","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/429.png"},{"id":430,"name":"honchkrow","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/430.png"},{"id":431,"name":"glameow","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/431.png"},{"id":432,"name":"purugly","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/432.png"},{"id":433,"name":"chingling","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/433.png"},{"id":434,"name":"stunky","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/434.png"},{"id":435,"name":"skuntank","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/435.png"},{"id":436,"name":"bronzor","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/436.png"},{"id":437,"name":"bronzong","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/437.png"},{"id":438,"name":"bonsly","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/438.png"},{"id":439,"name":"mime-jr","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/439.png"},{"id":440,"name":"happiny","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/440.png"},{"id":441,"name":"chatot","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/441.png"},{"id":442,"name":"spiritomb","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/442.png"},{"id":443,"name":"gible","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/443.png"},{"id":444,"name":"gabite","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/444.png"},{"id":445,"name":"garchomp","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/445.png"},{"id":446,"name":"munchlax","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/446.png"},{"id":447,"name":"riolu","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/447.png"},{"id":448,"name":"lucario","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/448.png"},{"id":449,"name":"hippopotas","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/449.png"},{"id":450,"name":"hippowdon","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/450.png"},{"id":451,"name":"skorupi","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/451.png"},{"id":452,"name":"drapion","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/452.png"},{"id":453,"name":"croagunk","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/453.png"},{"id":454,"name":"toxicroak","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/454.png"},{"id":455,"name":"carnivine","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/455.png"},{"id":456,"name":"finneon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/456.png"},{"id":457,"name":"lumineon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/457.png"},{"id":458,"name":"mantyke","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/458.png"},{"id":459,"name":"snover","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/459.png"},{"id":460,"name":"abomasnow","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/460.png"},{"id":461,"name":"weavile","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/461.png"},{"id":462,"name":"magnezone","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/462.png"},{"id":463,"name":"lickilicky","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/463.png"},{"id":464,"name":"rhyperior","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/464.png"},{"id":465,"name":"tangrowth","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/465.png"},{"id":466,"name":"electivire","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/466.png"},{"id":467,"name":"magmortar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/467.png"},{"id":468,"name":"togekiss","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/468.png"},{"id":469,"name":"yanmega","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/469.png"},{"id":470,"name":"leafeon","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/470.png"},{"id":471,"name":"glaceon","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/471.png"},{"id":472,"name":"gliscor","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/472.png"},{"id":473,"name":"mamoswine","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/473.png"},{"id":474,"name":"porygon-z","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/474.png"},{"id":475,"name":"gallade","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/475.png"},{"id":476,"name":"probopass","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/476.png"},{"id":477,"name":"dusknoir","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/477.png"},{"id":478,"name":"froslass","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/478.png"},{"id":479,"name":"rotom","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/479.png"},{"id":480,"name":"uxie","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/480.png"},{"id":481,"name":"mesprit","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/481.png"},{"id":482,"name":"azelf","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/482.png"},{"id":483,"name":"dialga","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/483.png"},{"id":484,"name":"palkia","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/484.png"},{"id":485,"name":"heatran","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/485.png"},{"id":486,"name":"regigigas","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/486.png"},{"id":487,"name":"giratina-altered","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/487.png"},{"id":488,"name":"cresselia","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/488.png"},{"id":489,"name":"phione","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/489.png"},{"id":490,"name":"manaphy","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/490.png"},{"id":491,"name":"darkrai","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/491.png"},{"id":492,"name":"shaymin-land","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/492.png"},{"id":493,"name":"arceus","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/493.png"},{"id":494,"name":"victini","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/494.png"},{"id":495,"name":"snivy","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/495.png"},{"id":496,"name":"servine","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/496.png"},{"id":497,"name":"serperior","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/497.png"},{"id":498,"name":"tepig","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/498.png"},{"id":499,"name":"pignite","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/499.png"},{"id":500,"name":"emboar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/500.png"},{"id":501,"name":"oshawott","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/501.png"},{"id":502,"name":"dewott","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/502.png"},{"id":503,"name":"samurott","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/503.png"},{"id":504,"name":"patrat","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/504.png"},{"id":505,"name":"watchog","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/505.png"},{"id":506,"name":"lillipup","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/506.png"},{"id":507,"name":"herdier","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/507.png"},{"id":508,"name":"stoutland","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/508.png"},{"id":509,"name":"purrloin","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/509.png"},{"id":510,"name":"liepard","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/510.png"},{"id":511,"name":"pansage","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/511.png"},{"id":512,"name":"simisage","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/512.png"},{"id":513,"name":"pansear","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/513.png"},{"id":514,"name":"simisear","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/514.png"},{"id":515,"name":"panpour","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/515.png"},{"id":516,"name":"simipour","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/516.png"},{"id":517,"name":"munna","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/517.png"},{"id":518,"name":"musharna","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/518.png"},{"id":519,"name":"pidove","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/519.png"},{"id":520,"name":"tranquill","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/520.png"},{"id":521,"name":"unfezant","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/521.png"},{"id":522,"name":"blitzle","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/522.png"},{"id":523,"name":"zebstrika","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/523.png"},{"id":524,"name":"roggenrola","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/524.png"},{"id":525,"name":"boldore","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/525.png"},{"id":526,"name":"gigalith","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/526.png"},{"id":527,"name":"woobat","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/527.png"},{"id":528,"name":"swoobat","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/528.png"},{"id":529,"name":"drilbur","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/529.png"},{"id":530,"name":"excadrill","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/530.png"},{"id":531,"name":"audino","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/531.png"},{"id":532,"name":"timburr","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/532.png"},{"id":533,"name":"gurdurr","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/533.png"},{"id":534,"name":"conkeldurr","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/534.png"},{"id":535,"name":"tympole","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/535.png"},{"id":536,"name":"palpitoad","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/536.png"},{"id":537,"name":"seismitoad","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/537.png"},{"id":538,"name":"throh","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/538.png"},{"id":539,"name":"sawk","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/539.png"},{"id":540,"name":"sewaddle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/540.png"},{"id":541,"name":"swadloon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/541.png"},{"id":542,"name":"leavanny","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/542.png"},{"id":543,"name":"venipede","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/543.png"},{"id":544,"name":"whirlipede","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/544.png"},{"id":545,"name":"scolipede","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/545.png"},{"id":546,"name":"cottonee","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/546.png"},{"id":547,"name":"whimsicott","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/547.png"},{"id":548,"name":"petilil","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/548.png"},{"id":549,"name":"lilligant","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/549.png"},{"id":550,"name":"basculin-red-striped","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/550.png"},{"id":551,"name":"sandile","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/551.png"},{"id":552,"name":"krokorok","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/552.png"},{"id":553,"name":"krookodile","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/553.png"},{"id":554,"name":"darumaka","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/554.png"},{"id":555,"name":"darmanitan-standard","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/555.png"},{"id":556,"name":"maractus","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/556.png"},{"id":557,"name":"dwebble","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/557.png"},{"id":558,"name":"crustle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/558.png"},{"id":559,"name":"scraggy","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/559.png"},{"id":560,"name":"scrafty","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/560.png"},{"id":561,"name":"sigilyph","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/561.png"},{"id":562,"name":"yamask","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/562.png"},{"id":563,"name":"cofagrigus","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/563.png"},{"id":564,"name":"tirtouga","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/564.png"},{"id":565,"name":"carracosta","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/565.png"},{"id":566,"name":"archen","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/566.png"},{"id":567,"name":"archeops","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/567.png"},{"id":568,"name":"trubbish","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/568.png"},{"id":569,"name":"garbodor","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/569.png"},{"id":570,"name":"zorua","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/570.png"},{"id":571,"name":"zoroark","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/571.png"},{"id":572,"name":"minccino","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/572.png"},{"id":573,"name":"cinccino","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/573.png"},{"id":574,"name":"gothita","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/574.png"},{"id":575,"name":"gothorita","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/575.png"},{"id":576,"name":"gothitelle","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/576.png"},{"id":577,"name":"solosis","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/577.png"},{"id":578,"name":"duosion","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/578.png"},{"id":579,"name":"reuniclus","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/579.png"},{"id":580,"name":"ducklett","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/580.png"},{"id":581,"name":"swanna","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/581.png"},{"id":582,"name":"vanillite","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/582.png"},{"id":583,"name":"vanillish","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/583.png"},{"id":584,"name":"vanilluxe","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/584.png"},{"id":585,"name":"deerling","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/585.png"},{"id":586,"name":"sawsbuck","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/586.png"},{"id":587,"name":"emolga","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/587.png"},{"id":588,"name":"karrablast","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/588.png"},{"id":589,"name":"escavalier","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/589.png"},{"id":590,"name":"foongus","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/590.png"},{"id":591,"name":"amoonguss","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/591.png"},{"id":592,"name":"frillish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/592.png"},{"id":593,"name":"jellicent","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/593.png"},{"id":594,"name":"alomomola","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/594.png"},{"id":595,"name":"joltik","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/595.png"},{"id":596,"name":"galvantula","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/596.png"},{"id":597,"name":"ferroseed","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/597.png"},{"id":598,"name":"ferrothorn","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/598.png"},{"id":599,"name":"klink","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/599.png"},{"id":600,"name":"klang","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/600.png"},{"id":601,"name":"klinklang","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/601.png"},{"id":602,"name":"tynamo","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/602.png"},{"id":603,"name":"eelektrik","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/603.png"},{"id":604,"name":"eelektross","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/604.png"},{"id":605,"name":"elgyem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/605.png"},{"id":606,"name":"beheeyem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/606.png"},{"id":607,"name":"litwick","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/607.png"},{"id":608,"name":"lampent","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/608.png"},{"id":609,"name":"chandelure","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/609.png"},{"id":610,"name":"axew","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/610.png"},{"id":611,"name":"fraxure","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/611.png"},{"id":612,"name":"haxorus","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/612.png"},{"id":613,"name":"cubchoo","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/613.png"},{"id":614,"name":"beartic","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/614.png"},{"id":615,"name":"cryogonal","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/615.png"},{"id":616,"name":"shelmet","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/616.png"},{"id":617,"name":"accelgor","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/617.png"},{"id":618,"name":"stunfisk","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/618.png"},{"id":619,"name":"mienfoo","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/619.png"},{"id":620,"name":"mienshao","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/620.png"},{"id":621,"name":"druddigon","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/621.png"},{"id":622,"name":"golett","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/622.png"},{"id":623,"name":"golurk","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/623.png"},{"id":624,"name":"pawniard","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/624.png"},{"id":625,"name":"bisharp","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/625.png"},{"id":626,"name":"bouffalant","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/626.png"},{"id":627,"name":"rufflet","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/627.png"},{"id":628,"name":"braviary","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/628.png"},{"id":629,"name":"vullaby","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/629.png"},{"id":630,"name":"mandibuzz","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/630.png"},{"id":631,"name":"heatmor","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/631.png"},{"id":632,"name":"durant","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/632.png"},{"id":633,"name":"deino","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/633.png"},{"id":634,"name":"zweilous","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/634.png"},{"id":635,"name":"hydreigon","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/635.png"},{"id":636,"name":"larvesta","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/636.png"},{"id":637,"name":"volcarona","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/637.png"},{"id":638,"name":"cobalion","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/638.png"},{"id":639,"name":"terrakion","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/639.png"},{"id":640,"name":"virizion","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/640.png"},{"id":641,"name":"tornadus-incarnate","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/641.png"},{"id":642,"name":"thundurus-incarnate","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/642.png"},{"id":643,"name":"reshiram","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/643.png"},{"id":644,"name":"zekrom","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/644.png"},{"id":645,"name":"landorus-incarnate","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/645.png"},{"id":646,"name":"kyurem","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/646.png"},{"id":647,"name":"keldeo-ordinary","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/647.png"},{"id":648,"name":"meloetta-aria","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/648.png"},{"id":649,"name":"genesect","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/649.png"},{"id":650,"name":"chespin","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/650.png"},{"id":651,"name":"quilladin","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/651.png"},{"id":652,"name":"chesnaught","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/652.png"},{"id":653,"name":"fennekin","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/653.png"},{"id":654,"name":"braixen","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/654.png"},{"id":655,"name":"delphox","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/655.png"},{"id":656,"name":"froakie","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/656.png"},{"id":657,"name":"frogadier","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/657.png"},{"id":658,"name":"greninja","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/658.png"},{"id":659,"name":"bunnelby","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/659.png"},{"id":660,"name":"diggersby","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/660.png"},{"id":661,"name":"fletchling","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/661.png"},{"id":662,"name":"fletchinder","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/662.png"},{"id":663,"name":"talonflame","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/663.png"},{"id":664,"name":"scatterbug","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/664.png"},{"id":665,"name":"spewpa","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/665.png"},{"id":666,"name":"vivillon","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/666.png"},{"id":667,"name":"litleo","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/667.png"},{"id":668,"name":"pyroar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/668.png"},{"id":669,"name":"flabebe","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/669.png"},{"id":670,"name":"floette","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/670.png"},{"id":671,"name":"florges","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/671.png"},{"id":672,"name":"skiddo","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/672.png"},{"id":673,"name":"gogoat","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/673.png"},{"id":674,"name":"pancham","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/674.png"},{"id":675,"name":"pangoro","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/675.png"},{"id":676,"name":"furfrou","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/676.png"},{"id":677,"name":"espurr","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/677.png"},{"id":678,"name":"meowstic-male","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/678.png"},{"id":679,"name":"honedge","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/679.png"},{"id":680,"name":"doublade","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/680.png"},{"id":681,"name":"aegislash-shield","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/681.png"},{"id":682,"name":"spritzee","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/682.png"},{"id":683,"name":"aromatisse","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/683.png"},{"id":684,"name":"swirlix","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/684.png"},{"id":685,"name":"slurpuff","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/685.png"},{"id":686,"name":"inkay","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/686.png"},{"id":687,"name":"malamar","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/687.png"},{"id":688,"name":"binacle","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/688.png"},{"id":689,"name":"barbaracle","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/689.png"},{"id":690,"name":"skrelp","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/690.png"},{"id":691,"name":"dragalge","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/691.png"},{"id":692,"name":"clauncher","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/692.png"},{"id":693,"name":"clawitzer","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/693.png"},{"id":694,"name":"helioptile","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/694.png"},{"id":695,"name":"heliolisk","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/695.png"},{"id":696,"name":"tyrunt","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/696.png"},{"id":697,"name":"tyrantrum","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/697.png"},{"id":698,"name":"amaura","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/698.png"},{"id":699,"name":"aurorus","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/699.png"},{"id":700,"name":"sylveon","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/700.png"},{"id":701,"name":"hawlucha","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/701.png"},{"id":702,"name":"dedenne","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/702.png"},{"id":703,"name":"carbink","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/703.png"},{"id":704,"name":"goomy","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/704.png"},{"id":705,"name":"sliggoo","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/705.png"},{"id":706,"name":"goodra","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/706.png"},{"id":707,"name":"klefki","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/707.png"},{"id":708,"name":"phantump","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/708.png"},{"id":709,"name":"trevenant","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/709.png"},{"id":710,"name":"pumpkaboo-average","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/710.png"},{"id":711,"name":"gourgeist-average","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/711.png"},{"id":712,"name":"bergmite","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/712.png"},{"id":713,"name":"avalugg","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/713.png"},{"id":714,"name":"noibat","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/714.png"},{"id":715,"name":"noivern","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/715.png"},{"id":716,"name":"xerneas","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/716.png"},{"id":717,"name":"yveltal","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/717.png"},{"id":718,"name":"zygarde","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/718.png"},{"id":719,"name":"diancie","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/719.png"},{"id":720,"name":"hoopa","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/720.png"},{"id":721,"name":"volcanion","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/721.png"},{"id":722,"name":"rowlet","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/722.png"},{"id":723,"name":"dartrix","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/723.png"},{"id":724,"name":"decidueye","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/724.png"},{"id":725,"name":"litten","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/725.png"},{"id":726,"name":"torracat","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/726.png"},{"id":727,"name":"incineroar","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/727.png"},{"id":728,"name":"popplio","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/728.png"},{"id":729,"name":"brionne","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/729.png"},{"id":730,"name":"primarina","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/730.png"},{"id":731,"name":"pikipek","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/731.png"},{"id":732,"name":"trumbeak","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/732.png"},{"id":733,"name":"toucannon","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/733.png"},{"id":734,"name":"yungoos","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/734.png"},{"id":735,"name":"gumshoos","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/735.png"},{"id":736,"name":"grubbin","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/736.png"},{"id":737,"name":"charjabug","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/737.png"},{"id":738,"name":"vikavolt","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/738.png"},{"id":739,"name":"crabrawler","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/739.png"},{"id":740,"name":"crabominable","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/740.png"},{"id":741,"name":"oricorio-baile","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/741.png"},{"id":742,"name":"cutiefly","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/742.png"},{"id":743,"name":"ribombee","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/743.png"},{"id":744,"name":"rockruff","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/744.png"},{"id":745,"name":"lycanroc-midday","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/745.png"},{"id":746,"name":"wishiwashi-solo","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/746.png"},{"id":747,"name":"mareanie","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/747.png"},{"id":748,"name":"toxapex","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/748.png"},{"id":749,"name":"mudbray","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/749.png"},{"id":750,"name":"mudsdale","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/750.png"},{"id":751,"name":"dewpider","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/751.png"},{"id":752,"name":"araquanid","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/752.png"},{"id":753,"name":"fomantis","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/753.png"},{"id":754,"name":"lurantis","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/754.png"},{"id":755,"name":"morelull","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/755.png"},{"id":756,"name":"shiinotic","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/756.png"},{"id":757,"name":"salandit","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/757.png"},{"id":758,"name":"salazzle","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/758.png"},{"id":759,"name":"stufful","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/759.png"},{"id":760,"name":"bewear","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/760.png"},{"id":761,"name":"bounsweet","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/761.png"},{"id":762,"name":"steenee","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/762.png"},{"id":763,"name":"tsareena","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/763.png"},{"id":764,"name":"comfey","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/764.png"},{"id":765,"name":"oranguru","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/765.png"},{"id":766,"name":"passimian","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/766.png"},{"id":767,"name":"wimpod","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/767.png"},{"id":768,"name":"golisopod","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/768.png"},{"id":769,"name":"sandygast","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/769.png"},{"id":770,"name":"palossand","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/770.png"},{"id":771,"name":"pyukumuku","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/771.png"},{"id":772,"name":"type-null","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/772.png"},{"id":773,"name":"silvally","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/773.png"},{"id":774,"name":"minior-red-meteor","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/774.png"},{"id":775,"name":"komala","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/775.png"},{"id":776,"name":"turtonator","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/776.png"},{"id":777,"name":"togedemaru","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/777.png"},{"id":778,"name":"mimikyu-disguised","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/778.png"},{"id":779,"name":"bruxish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/779.png"},{"id":780,"name":"drampa","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/780.png"},{"id":781,"name":"dhelmise","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/781.png"},{"id":782,"name":"jangmo-o","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/782.png"},{"id":783,"name":"hakamo-o","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/783.png"},{"id":784,"name":"kommo-o","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/784.png"},{"id":785,"name":"tapu-koko","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/785.png"},{"id":786,"name":"tapu-lele","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/786.png"},{"id":787,"name":"tapu-bulu","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/787.png"},{"id":788,"name":"tapu-fini","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/788.png"},{"id":789,"name":"cosmog","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/789.png"},{"id":790,"name":"cosmoem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/790.png"},{"id":791,"name":"solgaleo","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/791.png"},{"id":792,"name":"lunala","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/792.png"},{"id":793,"name":"nihilego","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/793.png"},{"id":794,"name":"buzzwole","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/794.png"},{"id":795,"name":"pheromosa","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/795.png"},{"id":796,"name":"xurkitree","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/796.png"},{"id":797,"name":"celesteela","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/797.png"},{"id":798,"name":"kartana","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/798.png"},{"id":799,"name":"guzzlord","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/799.png"},{"id":800,"name":"necrozma","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/800.png"},{"id":801,"name":"magearna","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/801.png"},{"id":802,"name":"marshadow","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/802.png"},{"id":803,"name":"poipole","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/803.png"},{"id":804,"name":"naganadel","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/804.png"},{"id":805,"name":"stakataka","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/805.png"},{"id":806,"name":"blacephalon","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/806.png"},{"id":807,"name":"zeraora","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/807.png"},{"id":808,"name":"meltan","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/808.png"},{"id":809,"name":"melmetal","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/809.png"},{"id":810,"name":"grookey","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/810.png"},{"id":811,"name":"thwackey","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/811.png"},{"id":812,"name":"rillaboom","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/812.png"},{"id":813,"name":"scorbunny","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/813.png"},{"id":814,"name":"raboot","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/814.png"},{"id":815,"name":"cinderace","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/815.png"},{"id":816,"name":"sobble","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/816.png"},{"id":817,"name":"drizzile","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/817.png"},{"id":818,"name":"inteleon","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/818.png"},{"id":819,"name":"skwovet","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/819.png"},{"id":820,"name":"greedent","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/820.png"},{"id":821,"name":"rookidee","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/821.png"},{"id":822,"name":"corvisquire","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/822.png"},{"id":823,"name":"corviknight","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/823.png"},{"id":824,"name":"blipbug","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/824.png"},{"id":825,"name":"dottler","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/825.png"},{"id":826,"name":"orbeetle","type":"bug","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/826.png"},{"id":827,"name":"nickit","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/827.png"},{"id":828,"name":"thievul","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/828.png"},{"id":829,"name":"gossifleur","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/829.png"},{"id":830,"name":"eldegoss","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/830.png"},{"id":831,"name":"wooloo","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/831.png"},{"id":832,"name":"dubwool","type":"normal","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/832.png"},{"id":833,"name":"chewtle","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/833.png"},{"id":834,"name":"drednaw","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/834.png"},{"id":835,"name":"yamper","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/835.png"},{"id":836,"name":"boltund","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/836.png"},{"id":837,"name":"rolycoly","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/837.png"},{"id":838,"name":"carkol","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/838.png"},{"id":839,"name":"coalossal","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/839.png"},{"id":840,"name":"applin","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/840.png"},{"id":841,"name":"flapple","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/841.png"},{"id":842,"name":"appletun","type":"grass","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/842.png"},{"id":843,"name":"silicobra","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/843.png"},{"id":844,"name":"sandaconda","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/844.png"},{"id":845,"name":"cramorant","type":"flying","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/845.png"},{"id":846,"name":"arrokuda","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/846.png"},{"id":847,"name":"barraskewda","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/847.png"},{"id":848,"name":"toxel","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/848.png"},{"id":849,"name":"toxtricity-amped","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/849.png"},{"id":850,"name":"sizzlipede","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/850.png"},{"id":851,"name":"centiskorch","type":"fire","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/851.png"},{"id":852,"name":"clobbopus","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/852.png"},{"id":853,"name":"grapploct","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/853.png"},{"id":854,"name":"sinistea","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/854.png"},{"id":855,"name":"polteageist","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/855.png"},{"id":856,"name":"hatenna","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/856.png"},{"id":857,"name":"hattrem","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/857.png"},{"id":858,"name":"hatterene","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/858.png"},{"id":859,"name":"impidimp","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/859.png"},{"id":860,"name":"morgrem","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/860.png"},{"id":861,"name":"grimmsnarl","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/861.png"},{"id":862,"name":"obstagoon","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/862.png"},{"id":863,"name":"perrserker","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/863.png"},{"id":864,"name":"cursola","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/864.png"},{"id":865,"name":"sirfetchd","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/865.png"},{"id":866,"name":"mr-rime","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/866.png"},{"id":867,"name":"runerigus","type":"ground","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/867.png"},{"id":868,"name":"milcery","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/868.png"},{"id":869,"name":"alcremie","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/869.png"},{"id":870,"name":"falinks","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/870.png"},{"id":871,"name":"pincurchin","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/871.png"},{"id":872,"name":"snom","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/872.png"},{"id":873,"name":"frosmoth","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/873.png"},{"id":874,"name":"stonjourner","type":"rock","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/874.png"},{"id":875,"name":"eiscue-ice","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/875.png"},{"id":876,"name":"indeedee-male","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/876.png"},{"id":877,"name":"morpeko","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/877.png"},{"id":878,"name":"cufant","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/878.png"},{"id":879,"name":"copperajah","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/879.png"},{"id":880,"name":"dracozolt","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/880.png"},{"id":881,"name":"arctozolt","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/881.png"},{"id":882,"name":"dracovish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/882.png"},{"id":883,"name":"arctovish","type":"water","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/883.png"},{"id":884,"name":"duraludon","type":"steel","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/884.png"},{"id":885,"name":"dreepy","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/885.png"},{"id":886,"name":"drakloak","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/886.png"},{"id":887,"name":"dragapult","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/887.png"},{"id":888,"name":"zacian-hero","type":"fairy","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/888.png"},{"id":889,"name":"zamazenta-hero","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/889.png"},{"id":890,"name":"eternatus","type":"poison","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/890.png"},{"id":891,"name":"kubfu","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/891.png"},{"id":892,"name":"urshifu-single-strike","type":"fighting","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/892.png"},{"id":893,"name":"zarude","type":"dark","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/893.png"},{"id":894,"name":"regieleki","type":"electric","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/894.png"},{"id":895,"name":"regidrago","type":"dragon","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/895.png"},{"id":896,"name":"glastrier","type":"ice","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/896.png"},{"id":897,"name":"spectrier","type":"ghost","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/897.png"},{"id":898,"name":"calyrex","type":"psychic","image":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/898.png"}] \ No newline at end of file diff --git a/data/schema.sql b/data/schema.sql index 2f3cfb2..44a463b 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,21 +1,22 @@ +-- CREATE DATABASE pokedex; CREATE DATABASE pokedex; USE pokedex; CREATE TABLE pokemon( - id INT PRIMARY KEY, - name VARCHAR(256), - img VARCHAR(50) + id INT PRIMARY KEY NOT NULL, + name VARCHAR(50), + img VARCHAR(256) ); -CREATE TABLE types( - id INT PRIMARY KEY NOT NULL, +CREATE TABLE type( + id INT PRIMARY KEY NOT NULL, name VARCHAR(32) ); -CREATE TABLE mapping( - id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, +CREATE TABLE poke_type( + id INT PRIMARY KEY AUTO_INCREMENT, pokeId INT NOT NULL, - FOREIGN KEY (pokeId) REFERENCES pokemon(id), typeId INT NOT NULL, - FOREIGN KEY (typeId) REFERENCES types(id) + FOREIGN KEY (pokeId) REFERENCES pokemon(id), + FOREIGN KEY (typeId) REFERENCES type(id) ); \ No newline at end of file From f7459c515ab8d859751531ab733c1212746fd2f9 Mon Sep 17 00:00:00 2001 From: ezotic Date: Sun, 7 Mar 2021 21:19:33 -0500 Subject: [PATCH 17/23] removed passwd --- rest/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest/index.js b/rest/index.js index 877fe0f..5d35101 100644 --- a/rest/index.js +++ b/rest/index.js @@ -27,7 +27,7 @@ async function getPokemonData(){ const con = mysql.createConnection({ host: "localhost", user: "root", - password: "linux5All##", + password: "password", database: "pokedex" }); From bdd478b9b4f00ff36990c01b2bc9c548b0c71a64 Mon Sep 17 00:00:00 2001 From: ezotic Date: Mon, 8 Mar 2021 19:49:32 -0500 Subject: [PATCH 18/23] final commit, removed click --- data/createTables.js | 2 +- data/schema.sql | 8 +++++--- rest/index.js | 2 +- web/index.html | 6 ------ web/js/index.js | 41 +++++++++++++++++++++-------------------- 5 files changed, 28 insertions(+), 31 deletions(-) diff --git a/data/createTables.js b/data/createTables.js index 0398d10..b42f8e7 100644 --- a/data/createTables.js +++ b/data/createTables.js @@ -20,7 +20,7 @@ con.connect(function(err) { con.connect(function(err) { if (err) throw err; console.log("Connected!"); - let sql = "CREATE TABLE type(id INT PRIMARY KEY NOT NULL,name VARCHAR(32))"; + let sql = "CREATE TABLE types(id INT PRIMARY KEY NOT NULL,name VARCHAR(32))"; con.query(sql, function (err, result) { if (err) throw err; console.log("types table created..."); diff --git a/data/schema.sql b/data/schema.sql index 44a463b..79d3c8b 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -8,7 +8,7 @@ CREATE TABLE pokemon( img VARCHAR(256) ); -CREATE TABLE type( +CREATE TABLE types( id INT PRIMARY KEY NOT NULL, name VARCHAR(32) ); @@ -18,5 +18,7 @@ CREATE TABLE poke_type( pokeId INT NOT NULL, typeId INT NOT NULL, FOREIGN KEY (pokeId) REFERENCES pokemon(id), - FOREIGN KEY (typeId) REFERENCES type(id) -); \ No newline at end of file + FOREIGN KEY (typeId) REFERENCES types(id) +); + +SELECT pokemon.ID AS id, name,types.type, img FROM pokemon join poke_type on pokemon.id = poke_type.pokeId join types on poke_type.typeId = types.id order by pokeId; \ No newline at end of file diff --git a/rest/index.js b/rest/index.js index 5d35101..c09d5ed 100644 --- a/rest/index.js +++ b/rest/index.js @@ -32,7 +32,7 @@ async function getPokemonData(){ }); let data = await new Promise((resolve, reject) => { - con.query("SELECT * from pokemon", (err, result, fields) => { + con.query("SELECT pokemon.ID AS id, name,types.type, img FROM pokemon join poke_type on pokemon.id = poke_type.pokeId join types on poke_type.typeId = types.id order by pokeId;", (err, result, fields) => { (err) ? reject(err): resolve(result); }) }) diff --git a/web/index.html b/web/index.html index 05ab6a4..a6f4b7f 100644 --- a/web/index.html +++ b/web/index.html @@ -8,12 +8,6 @@

Pokedex

- -
- - - -
diff --git a/web/js/index.js b/web/js/index.js index 466bf59..899bb05 100644 --- a/web/js/index.js +++ b/web/js/index.js @@ -2,33 +2,34 @@ const button = document.querySelector("button"); const inputText = document.querySelector("#numberOfPokemons"); const container = document.querySelector(".container"); -button.addEventListener("click", () => { - let input = inputText.value; + +function fetchPokemon() { fetch(`http://localhost:4000/pokedex`) - // fetch(`http://localhost:4000/all/${input}`) .then((res) => res.json()) .then((pokemon) => { pokemon.map(i =>showPokemon(i.id, i.name, i.type, i.img)); }); - }); + }; function showPokemon(id, name, type, img){ - let div = document.createElement('div'); - let divInnerHtml = - `
-
-
-

${name}

-

#${id}

-
-
- -
` - div.innerHTML = divInnerHtml; - div.classList.add(type); - container.appendChild(div); -} \ No newline at end of file + let div = document.createElement('div'); + let divInnerHtml = + `
+
+
+

${name}

+

#${id}

+
+
+ +
` + div.innerHTML = divInnerHtml; + div.classList.add(type); + container.appendChild(div); +} + +fetchPokemon() \ No newline at end of file From 822027752b79daf04d4682e1b9d96d4a379a260b Mon Sep 17 00:00:00 2001 From: ezotic Date: Mon, 8 Mar 2021 20:06:50 -0500 Subject: [PATCH 19/23] final commit, body color change --- web/css/pokemon.css | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/css/pokemon.css b/web/css/pokemon.css index f124057..420c1be 100644 --- a/web/css/pokemon.css +++ b/web/css/pokemon.css @@ -4,6 +4,10 @@ box-sizing: border-box } +body { + background-color: rgb(248, 242, 242); +} + h1 { font-size: 4rem; margin-top: 3rem; @@ -39,7 +43,7 @@ h1 { margin-bottom: 5rem; } -button { +/* button { background-image: linear-gradient(130deg,lightgray,black); padding: .1rem; color: white; @@ -59,7 +63,7 @@ input { border-radius: 3%; font-weight:bold; padding: .1rem; -} +} */ /* Card Properties */ .card { From c070b7134d21181dc3e5bf736c6ade57d7755232 Mon Sep 17 00:00:00 2001 From: ezotic Date: Tue, 9 Mar 2021 10:06:14 -0500 Subject: [PATCH 20/23] minor css changes --- .vscode/settings.json | 3 +++ rest/index.js | 11 ++++------ web/css/pokemon.css | 50 +++++++++++++++++++++---------------------- 3 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6f3a291 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/rest/index.js b/rest/index.js index c09d5ed..cb75276 100644 --- a/rest/index.js +++ b/rest/index.js @@ -8,7 +8,6 @@ const app = express() app.use(cors()) const port = 4000 - app.get('/', (req, res) => { res.send('#FlyEaglesFly') }) @@ -16,7 +15,7 @@ app.get('/', (req, res) => { app.get("/pokedex", async (req, res) => { let pokemonData = await getPokemonData() res.send(pokemonData); - }) +}) app.listen(port, () => { console.log(`Starting Pokedex app at http://localhost:${port}`) @@ -27,7 +26,7 @@ async function getPokemonData(){ const con = mysql.createConnection({ host: "localhost", user: "root", - password: "password", + password: "linux5All##", database: "pokedex" }); @@ -42,8 +41,6 @@ async function getPokemonData(){ return data; } - - async function getFromAPI(){ let promises = [] @@ -67,7 +64,7 @@ async function loadDatabase(){ let con = mysql.createConnection({ host: "localhost", user: "root", - password: "linux5All##", + password: "password", database: "pokedex" }); @@ -94,7 +91,7 @@ async function loadDatabase(){ // Insert data into type table for(let i = 0; i < uniqueTypes.length; i++){ - con.query(`INSERT INTO type(id, name) VALUES (${i+1}, "${uniqueTypes[i]}");`) + con.query(`INSERT INTO types(id, name) VALUES (${i+1}, "${uniqueTypes[i]}");`) } // Insert data into poke_type junction table diff --git a/web/css/pokemon.css b/web/css/pokemon.css index 420c1be..732a023 100644 --- a/web/css/pokemon.css +++ b/web/css/pokemon.css @@ -11,7 +11,7 @@ body { h1 { font-size: 4rem; margin-top: 3rem; - margin-bottom: 3rem; + margin-bottom: 10rem; text-align: center; text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, @@ -38,10 +38,10 @@ h1 { grid-template-columns: auto auto auto auto; } -.pButton { +/* .pButton { margin-left: 3rem; margin-bottom: 5rem; -} +} */ /* button { background-image: linear-gradient(130deg,lightgray,black); @@ -67,10 +67,10 @@ input { /* Card Properties */ .card { - box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); - padding-bottom: 2rem; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.5); + padding: 1rem; border-style:solid; - border-radius: 10%; + border-radius:0%; } h4.pName { @@ -95,97 +95,97 @@ h4.pNum { img { margin-left: auto; margin-right: auto; - max-height: 10rem; + max-height: 12rem; } /* Card Background colors bases on Pokemon Types */ .bug { background-color: #3b9950; - border-radius: 10%; + border-radius:0%; } .dark { background-color: #5a5979; - border-radius: 10%; + border-radius:0%; } .dragon { background-color: #61cad9; - border-radius: 10%; + border-radius:0%; } .electric { background-color: #fbfb71; - border-radius: 10%; + border-radius:0%; } .fairy { background-color: #ea1169; - border-radius: 10%; + border-radius:0%; } .fighting { background-color: #ef6138; - border-radius: 10%; + border-radius:0%; } .fire { background-color: #fd4c59; - border-radius: 10%; + border-radius:0%; } .flying { background-color: #93b2c7; - border-radius: 10%; + border-radius:0%; } .ghost { background-color: #906790; - border-radius: 10%; + border-radius:0%; } .grass { background-color: #26cb4f; - border-radius: 10%; + border-radius:0%; } .ground { background-color: #6e491f; - border-radius: 10%; + border-radius:0%; } .ice { background-color: #d9eefa; - border-radius: 10%; + border-radius:0%; } .normal { background-color: #c998a7; - border-radius: 10%; + border-radius:0%; } .poison { background-color: #9b69d8; - border-radius: 10%; + border-radius:0%; } .psychic { background-color: #f71c91; - border-radius: 10%; + border-radius:0%; } .rock { background-color: #8a3d22; - border-radius: 10%; + border-radius:0%; } .steel { background-color: #42bd94; - border-radius: 10%; + border-radius:0%; } .water { background-color: #86a9fa; - border-radius: 10%; + border-radius:0%; }; From c442adb8401d3fd58e4ef4beac8e2bfe0f427f79 Mon Sep 17 00:00:00 2001 From: ezotic Date: Tue, 9 Mar 2021 10:14:06 -0500 Subject: [PATCH 21/23] minor css changes --- web/css/pokemon.css | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/web/css/pokemon.css b/web/css/pokemon.css index 732a023..9d7297f 100644 --- a/web/css/pokemon.css +++ b/web/css/pokemon.css @@ -9,7 +9,7 @@ body { } h1 { - font-size: 4rem; + font-size: 6rem; margin-top: 3rem; margin-bottom: 10rem; text-align: center; @@ -38,32 +38,6 @@ h1 { grid-template-columns: auto auto auto auto; } -/* .pButton { - margin-left: 3rem; - margin-bottom: 5rem; -} */ - -/* button { - background-image: linear-gradient(130deg,lightgray,black); - padding: .1rem; - color: white; -} - -button:hover { - cursor:pointer; - background-image: linear-gradient(130deg, black,lightgray); - color:white; - } - -input { - text-align: right; - max-width: 4rem; - padding-right: .25rem; - border-style: solid; - border-radius: 3%; - font-weight:bold; - padding: .1rem; -} */ /* Card Properties */ .card { From da8acf9f65021733f031d5e3a0d4e4fba4076e8b Mon Sep 17 00:00:00 2001 From: ezotic Date: Tue, 9 Mar 2021 10:55:53 -0500 Subject: [PATCH 22/23] minor refactoring and cleanup --- rest/index.js | 4 ++-- web/js/index.js | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/rest/index.js b/rest/index.js index cb75276..a8ef225 100644 --- a/rest/index.js +++ b/rest/index.js @@ -26,7 +26,7 @@ async function getPokemonData(){ const con = mysql.createConnection({ host: "localhost", user: "root", - password: "linux5All##", + password: "password", database: "pokedex" }); @@ -64,7 +64,7 @@ async function loadDatabase(){ let con = mysql.createConnection({ host: "localhost", user: "root", - password: "password", + password: "linux5All##", database: "pokedex" }); diff --git a/web/js/index.js b/web/js/index.js index 899bb05..d9f166b 100644 --- a/web/js/index.js +++ b/web/js/index.js @@ -1,8 +1,5 @@ -const button = document.querySelector("button"); -const inputText = document.querySelector("#numberOfPokemons"); const container = document.querySelector(".container"); - function fetchPokemon() { fetch(`http://localhost:4000/pokedex`) .then((res) => res.json()) @@ -13,8 +10,7 @@ function fetchPokemon() { }); }; -function showPokemon(id, name, type, img){ - +function showPokemon(id, name, type, img){ let div = document.createElement('div'); let divInnerHtml = `
From d651c751604f147949c8b7021f268e92c0818753 Mon Sep 17 00:00:00 2001 From: "Earl M. Smith" Date: Sun, 13 Jun 2021 15:27:51 -0400 Subject: [PATCH 23/23] update --- data/index-json.js | 32 -------------------------------- rest/index.js | 5 +++-- web/index.html | 6 +++--- web/{js => }/index.js | 2 +- web/{css => }/pokemon.css | 0 5 files changed, 7 insertions(+), 38 deletions(-) delete mode 100644 data/index-json.js rename web/{js => }/index.js (94%) rename web/{css => }/pokemon.css (100%) diff --git a/data/index-json.js b/data/index-json.js deleted file mode 100644 index d137799..0000000 --- a/data/index-json.js +++ /dev/null @@ -1,32 +0,0 @@ -const express = require('express'); -const fetch = require('node-fetch'); -const cors = require("cors"); - -const app = express() -app.use(cors()) -const port = 4000 - -app.get('/all/:count', async (req, response) => { - const count = req.params.count; - fetch(`https://pokeapi.co/api/v2/pokemon?limit=${count}&offset=0`) - .then((res) => res.json()) - .then((allThePokemon) => { - const requestsToMake = allThePokemon.results.map(({ url }) => - fetch(url).then((res) => res.json()) - ); - return Promise.all(requestsToMake); - }) - .then(data => { - let responseResult = []; - for( let i = 0; i < count; i++){ - let responseObject = { id: data[i].id, name: data[i].name, type: data[i].types[0].type.name, image: data[i].sprites.front_default}; - responseResult.push(responseObject); - } - response.json(responseResult); - }) - .catch(err => console.error(err)); -}) - -app.listen(port, () => { - console.log(`Pokemon Server is now running at http://localhost:${port}`) -}) \ No newline at end of file diff --git a/rest/index.js b/rest/index.js index a8ef225..f9a8167 100644 --- a/rest/index.js +++ b/rest/index.js @@ -6,7 +6,7 @@ const axios = require("axios"); const app = express() app.use(cors()) -const port = 4000 +const port = 5000 app.get('/', (req, res) => { res.send('#FlyEaglesFly') @@ -26,7 +26,7 @@ async function getPokemonData(){ const con = mysql.createConnection({ host: "localhost", user: "root", - password: "password", + password: "linux5All##", database: "pokedex" }); @@ -105,3 +105,4 @@ async function loadDatabase(){ con.end(); } + diff --git a/web/index.html b/web/index.html index a6f4b7f..00ec06f 100644 --- a/web/index.html +++ b/web/index.html @@ -4,13 +4,13 @@ Pokedex - +

Pokedex

-
+
- + \ No newline at end of file diff --git a/web/js/index.js b/web/index.js similarity index 94% rename from web/js/index.js rename to web/index.js index d9f166b..6828a1b 100644 --- a/web/js/index.js +++ b/web/index.js @@ -1,7 +1,7 @@ const container = document.querySelector(".container"); function fetchPokemon() { - fetch(`http://localhost:4000/pokedex`) + fetch(`http://localhost:5000/pokedex`) .then((res) => res.json()) .then((pokemon) => { diff --git a/web/css/pokemon.css b/web/pokemon.css similarity index 100% rename from web/css/pokemon.css rename to web/pokemon.css