diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..dfe0770
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3351af4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+.env
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3c5e72d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,13 @@
+# Pokéteam
+
+Made by Jason Chen
+
+Directory ID - jchen159
+
+## Description
+
+Users can select 6 pokémons to form their team. The database stores their selected pokémon. Users can view all submissions in archive.
+
+## API links
+
+- This project was built using [PokéAPI](https://pokeapi.co/).
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..bb628b8
--- /dev/null
+++ b/index.js
@@ -0,0 +1,188 @@
+const http = require("http");
+const path = require("path");
+const express = require("express");
+const app = express();
+const fetch = require("node-fetch");
+const bodyParser = require("body-parser");
+app.use(bodyParser.urlencoded({ extended: false }));
+app.use(express.static(path.join(__dirname, "public")));
+app.set("view engine", "ejs");
+require("dotenv").config();
+
+const userName = process.env.MONGO_DB_USERNAME;
+const password = process.env.MONGO_DB_PASSWORD;
+const databaseAndCollection = {
+ db: process.env.MONGO_DB_NAME,
+ collection: process.env.MONGO_COLLECTION,
+};
+
+const portNumber = process.env.PORT || 3000;
+const { MongoClient, ServerApiVersion } = require("mongodb");
+
+const uri = `mongodb+srv://${userName}:${password}@cluster0.tl7li.mongodb.net/?retryWrites=true&w=majority`;
+const client = new MongoClient(uri, {
+ useNewUrlParser: true,
+ useUnifiedTopology: true,
+ serverApi: ServerApiVersion.v1,
+});
+const collection = client
+ .db(databaseAndCollection.db)
+ .collection(databaseAndCollection.collection);
+try {
+ client.connect();
+} catch (err) {
+ console.error(err);
+}
+
+app.get("/", async (req, res) => {
+ res.render("index");
+});
+
+app.get("/create", async (req, res) => {
+ try {
+ pick = ``;
+ res.render("create", { pick: pick });
+ } catch (err) {
+ console.error(err);
+ }
+});
+
+app.post("/processTeam", async (req, res) => {
+ try {
+ let p = await addPokemon(req.body);
+ let pokemons = req.body.pokemons;
+ let sprites = [];
+ const results = await Promise.all(
+ pokemons.map(async (pokemon) => {
+ let p = await fetchPokemon(pokemon);
+ let sprite = p.sprites.other["official-artwork"].front_default;
+ return sprite;
+ })
+ );
+
+ results.forEach((result) => {
+ sprites.push(result);
+ });
+
+ let data = {
+ name: req.body.name,
+ sprites: sprites,
+ };
+ res.render("team", data);
+ } catch (err) {
+ console.error(err);
+ }
+});
+
+app.get("/view/:name", async (req, res) => {
+ try {
+ const p = await collection.findOne({ name: req.params.name });
+ let pokemons = p.pokemons;
+ let sprites = [];
+ const results = await Promise.all(
+ pokemons.map(async (pokemon) => {
+ let p = await fetchPokemon(pokemon);
+ let sprite = p.sprites.other["official-artwork"].front_default;
+ return sprite;
+ })
+ );
+
+ results.forEach((result) => {
+ sprites.push(result);
+ });
+
+ let data = {
+ name: req.params.name,
+ sprites: sprites,
+ };
+ res.render("team", data);
+ } catch (err) {
+ console.error(err);
+ }
+});
+
+app.get("/archive", async (req, res) => {
+ try {
+ let trainers = await getAllTrainers();
+ var table = "
Name | Pokémons |
";
+ for (const t of trainers) {
+ let pokemons = t.pokemons;
+ let sprites = [];
+ const results = await Promise.all(
+ pokemons.map(async (pokemon) => {
+ let p = await fetchPokemon(pokemon);
+ let sprite =
+ p.sprites.versions["generation-viii"].icons.front_default;
+ return sprite;
+ })
+ );
+ results.forEach((result) => {
+ sprites.push(result);
+ });
+ table += `${t.name} | `;
+ sprites.forEach((s) => {
+ table += ` `;
+ });
+ table += ` |
`;
+ }
+ res.render("archive", { table });
+ } catch (err) {
+ console.error(err);
+ }
+});
+
+async function fetchPokemon(pokemon) {
+ try {
+ const res = await fetch(`https://pokeapi.co/api/v2/pokemon/${pokemon}`);
+ const data = await res.json();
+ return data;
+ } catch (err) {
+ console.log(err);
+ }
+}
+
+async function getAllPokemons() {
+ try {
+ const res = await fetch(`https://pokeapi.co/api/v2/pokemon?limit=493`);
+ const data = await res.json();
+ return data;
+ } catch (err) {
+ console.log(err);
+ }
+}
+
+async function addPokemon(body) {
+ try {
+ const query = { name: body.name };
+ const doc = await collection.findOne(query);
+ console.log(query);
+ if (doc) {
+ const update = { $set: { pokemons: body.pokemons } };
+ await collection.updateOne(query, update);
+ return `Trainer updated, added ${body.pokemons} to ${body.name}`;
+ } else {
+ const doc = {
+ name: body.name,
+ pokemons: body.pokemons,
+ };
+ await collection.insertOne(doc);
+ return `New Trainer ${body.name} added with team ${body.pokemons}`;
+ }
+ } catch (err) {
+ console.error(err);
+ }
+}
+
+async function getAllTrainers() {
+ const cursor = collection.find({});
+ const result = await cursor.toArray();
+ return result;
+}
+
+app.listen(portNumber);
+console.log(`Web server started and running at http://localhost:${portNumber}`);
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..549f6a5
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1879 @@
+{
+ "name": "poketeam",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@aws-crypto/ie11-detection": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz",
+ "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==",
+ "optional": true,
+ "requires": {
+ "tslib": "^1.11.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "optional": true
+ }
+ }
+ },
+ "@aws-crypto/sha256-browser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz",
+ "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==",
+ "optional": true,
+ "requires": {
+ "@aws-crypto/ie11-detection": "^2.0.0",
+ "@aws-crypto/sha256-js": "^2.0.0",
+ "@aws-crypto/supports-web-crypto": "^2.0.0",
+ "@aws-crypto/util": "^2.0.0",
+ "@aws-sdk/types": "^3.1.0",
+ "@aws-sdk/util-locate-window": "^3.0.0",
+ "@aws-sdk/util-utf8-browser": "^3.0.0",
+ "tslib": "^1.11.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "optional": true
+ }
+ }
+ },
+ "@aws-crypto/sha256-js": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz",
+ "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==",
+ "optional": true,
+ "requires": {
+ "@aws-crypto/util": "^2.0.0",
+ "@aws-sdk/types": "^3.1.0",
+ "tslib": "^1.11.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "optional": true
+ }
+ }
+ },
+ "@aws-crypto/supports-web-crypto": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz",
+ "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==",
+ "optional": true,
+ "requires": {
+ "tslib": "^1.11.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "optional": true
+ }
+ }
+ },
+ "@aws-crypto/util": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz",
+ "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "^3.110.0",
+ "@aws-sdk/util-utf8-browser": "^3.0.0",
+ "tslib": "^1.11.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "optional": true
+ }
+ }
+ },
+ "@aws-sdk/abort-controller": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz",
+ "integrity": "sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/client-cognito-identity": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.231.0.tgz",
+ "integrity": "sha512-68/sVzGkjU+/weMKpiSRjFmqvX6pTzMUyaholXUFXm5NzU51sWGc9w4+4PL4qwjCDPEHwDlCID5Pp5Ttgei+0Q==",
+ "optional": true,
+ "requires": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/client-sts": "3.231.0",
+ "@aws-sdk/config-resolver": "3.231.0",
+ "@aws-sdk/credential-provider-node": "3.231.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.229.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-signing": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.226.0",
+ "@aws-sdk/util-defaults-mode-node": "3.231.0",
+ "@aws-sdk/util-endpoints": "3.226.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/client-sso": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.231.0.tgz",
+ "integrity": "sha512-/q7BptaMiT6/wxW9vE/gcQuApMXio5vdTuqt77A6+mjqhNzYFfCn7RRS4BU8KEOpZObnYBKP3mYe3NDccEbMzQ==",
+ "optional": true,
+ "requires": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/config-resolver": "3.231.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.229.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.226.0",
+ "@aws-sdk/util-defaults-mode-node": "3.231.0",
+ "@aws-sdk/util-endpoints": "3.226.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/client-sso-oidc": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.231.0.tgz",
+ "integrity": "sha512-yqEZW9/Q6VvMDMcQoE52oa/oa6F8z8cqyax7m29VpuVrncYcfELpkZKWPoaJVfierR5ysKfKiAU0acPgMpvllQ==",
+ "optional": true,
+ "requires": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/config-resolver": "3.231.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.229.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.226.0",
+ "@aws-sdk/util-defaults-mode-node": "3.231.0",
+ "@aws-sdk/util-endpoints": "3.226.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/client-sts": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.231.0.tgz",
+ "integrity": "sha512-5WYqlcbM49ofOFBsu28QBt3t26M5D9XynhSaswSrCzawwdNkIMYQrKOCplF5mqOy+GywVIRrFeCVVrAKPMZJxQ==",
+ "optional": true,
+ "requires": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/config-resolver": "3.231.0",
+ "@aws-sdk/credential-provider-node": "3.231.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.229.0",
+ "@aws-sdk/middleware-sdk-sts": "3.226.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-signing": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.226.0",
+ "@aws-sdk/util-defaults-mode-node": "3.231.0",
+ "@aws-sdk/util-endpoints": "3.226.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "fast-xml-parser": "4.0.11",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/config-resolver": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.231.0.tgz",
+ "integrity": "sha512-qpjV4Fw/NQ4a0p5/qwzqaShflYRlY/SPcgA7N5GTJjIjZjg3NV+5BKJSF3VeZcNKfbXq68kkn207OSCpyheYxQ==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-config-provider": "3.208.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-cognito-identity": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.231.0.tgz",
+ "integrity": "sha512-T3NkElmlSMWKKMzu46C4ZcneuYWvnUQT2XTQlaJG28b2IPnpzjPn1m8DumBsSNgZhqwFJI9VPD4+Pt2AB/YysQ==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/client-cognito-identity": "3.231.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-env": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz",
+ "integrity": "sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-imds": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz",
+ "integrity": "sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-ini": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.231.0.tgz",
+ "integrity": "sha512-4JJgrJg2O91Vki4m5nSQNZGX/5yAYgzG1IOjeZ+8vCDxfR+jA2O9+/Xhi2/8aDpb1da77OJ+cK1+ezzSMchIfQ==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/credential-provider-env": "3.226.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/credential-provider-sso": "3.231.0",
+ "@aws-sdk/credential-provider-web-identity": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-node": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.231.0.tgz",
+ "integrity": "sha512-DOojjyYdLNeBQv9+PaDXmvvww9SmcZsaL1YCl27e5larcJSMfT41vn4WRnVRu2zBI2BIi464Z8ziRRKwd2YFVg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/credential-provider-env": "3.226.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/credential-provider-ini": "3.231.0",
+ "@aws-sdk/credential-provider-process": "3.226.0",
+ "@aws-sdk/credential-provider-sso": "3.231.0",
+ "@aws-sdk/credential-provider-web-identity": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-process": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz",
+ "integrity": "sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-sso": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.231.0.tgz",
+ "integrity": "sha512-aImUD+PAqZ7A2C1ef7gskMN3KuxFT4Am1Vrl6M0oLGyrhKG2QtRT/UaXJE+Yt6d/C2qc2OsQ9j2oim7D6Qha/A==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/client-sso": "3.231.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/token-providers": "3.231.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-provider-web-identity": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz",
+ "integrity": "sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/credential-providers": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.231.0.tgz",
+ "integrity": "sha512-j9frqTADvCzFQHERaaa8bSsw5tkOkBoG+oSyRsLFyGuZ7KBdPUSCxEBTHks2ej7902DlMzBcDYrGp7Kw3b7VNA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/client-cognito-identity": "3.231.0",
+ "@aws-sdk/client-sso": "3.231.0",
+ "@aws-sdk/client-sts": "3.231.0",
+ "@aws-sdk/credential-provider-cognito-identity": "3.231.0",
+ "@aws-sdk/credential-provider-env": "3.226.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/credential-provider-ini": "3.231.0",
+ "@aws-sdk/credential-provider-node": "3.231.0",
+ "@aws-sdk/credential-provider-process": "3.226.0",
+ "@aws-sdk/credential-provider-sso": "3.231.0",
+ "@aws-sdk/credential-provider-web-identity": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/fetch-http-handler": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz",
+ "integrity": "sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/querystring-builder": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/hash-node": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz",
+ "integrity": "sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-buffer-from": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/invalid-dependency": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz",
+ "integrity": "sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/is-array-buffer": {
+ "version": "3.201.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz",
+ "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-content-length": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz",
+ "integrity": "sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-endpoint": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz",
+ "integrity": "sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-config-provider": "3.208.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-host-header": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz",
+ "integrity": "sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-logger": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz",
+ "integrity": "sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-recursion-detection": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz",
+ "integrity": "sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-retry": {
+ "version": "3.229.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.229.0.tgz",
+ "integrity": "sha512-/y0BWio9b2RRH2QvRTohbuqE0vhH4IZKlc6k+JRbGV9aSwyOzACU/L/qkGftC/W0puvgNvZYjGxmB6cGHAEZaw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/service-error-classification": "3.229.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1",
+ "uuid": "^8.3.2"
+ }
+ },
+ "@aws-sdk/middleware-sdk-sts": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz",
+ "integrity": "sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/middleware-signing": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-serde": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz",
+ "integrity": "sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-signing": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz",
+ "integrity": "sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-stack": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz",
+ "integrity": "sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/middleware-user-agent": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz",
+ "integrity": "sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/node-config-provider": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz",
+ "integrity": "sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/node-http-handler": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz",
+ "integrity": "sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/abort-controller": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/querystring-builder": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/property-provider": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz",
+ "integrity": "sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/protocol-http": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz",
+ "integrity": "sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/querystring-builder": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz",
+ "integrity": "sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-uri-escape": "3.201.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/querystring-parser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz",
+ "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/service-error-classification": {
+ "version": "3.229.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz",
+ "integrity": "sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==",
+ "optional": true
+ },
+ "@aws-sdk/shared-ini-file-loader": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz",
+ "integrity": "sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/signature-v4": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz",
+ "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/is-array-buffer": "3.201.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-hex-encoding": "3.201.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "@aws-sdk/util-uri-escape": "3.201.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/smithy-client": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.226.0.tgz",
+ "integrity": "sha512-BWr1FhWSUhkSBp0TLzliD5AQBjA2Jmo9FlOOt+cBwd9BKkSGlGj+HgATYJ83Sjjg2+J6qvEZBxB78LKVHhorBw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/token-providers": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.231.0.tgz",
+ "integrity": "sha512-sxx6X/moSdukyrnoBtLxmgQQLWqixMc/qAM5yNg5lfNoGamWslH6CnT1HlxTFv71q8/1xwnvZ4LC2kbD6vDc6Q==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/client-sso-oidc": "3.231.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/types": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz",
+ "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/url-parser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz",
+ "integrity": "sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/querystring-parser": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-base64": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz",
+ "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/util-buffer-from": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-body-length-browser": {
+ "version": "3.188.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz",
+ "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-body-length-node": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz",
+ "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-buffer-from": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz",
+ "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/is-array-buffer": "3.201.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-config-provider": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz",
+ "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-defaults-mode-browser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.226.0.tgz",
+ "integrity": "sha512-chLx+6AeMSjuPsCVbI1B4Pg3jftjjcsuTsJucjo0DKBb1VSWqPCitmOILQVvKiA2Km8TSs3VcbUuOCyDExkzAg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-defaults-mode-node": {
+ "version": "3.231.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.231.0.tgz",
+ "integrity": "sha512-jH+9z96x8Oxv+bqBdD7x8CRvbKzM9id+VHzI9+h1oTY9J+6MkUubPshliBTQeus5pD03NBOS/2F3GX2rJ9Avuw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/config-resolver": "3.231.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-endpoints": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.226.0.tgz",
+ "integrity": "sha512-iqOkac/zLmyPBUJd7SLN0PeZMkOmlGgD5PHmmekTClOkce2eUjK9SNX1PzL73aXPoPTyhg9QGLH8uEZEQ8YUzg==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-hex-encoding": {
+ "version": "3.201.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz",
+ "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-locate-window": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz",
+ "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-middleware": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz",
+ "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-retry": {
+ "version": "3.229.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz",
+ "integrity": "sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/service-error-classification": "3.229.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-uri-escape": {
+ "version": "3.201.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz",
+ "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-user-agent-browser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz",
+ "integrity": "sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/types": "3.226.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-user-agent-node": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz",
+ "integrity": "sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-utf8-browser": {
+ "version": "3.188.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz",
+ "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==",
+ "optional": true,
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "@aws-sdk/util-utf8-node": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz",
+ "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==",
+ "optional": true,
+ "requires": {
+ "@aws-sdk/util-buffer-from": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@types/node": {
+ "version": "18.11.15",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz",
+ "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw=="
+ },
+ "@types/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog=="
+ },
+ "@types/whatwg-url": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
+ "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
+ "requires": {
+ "@types/node": "*",
+ "@types/webidl-conversions": "*"
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
+ "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.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "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": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ }
+ },
+ "bowser": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
+ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==",
+ "optional": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "bson": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz",
+ "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==",
+ "requires": {
+ "buffer": "^5.6.0"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "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.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.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": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "requires": {
+ "safe-buffer": "5.2.1"
+ }
+ },
+ "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=="
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ },
+ "dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "ejs": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
+ "requires": {
+ "jake": "^10.8.5"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ },
+ "express": {
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "requires": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.11.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "fast-xml-parser": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz",
+ "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==",
+ "optional": true,
+ "requires": {
+ "strnum": "^1.0.5"
+ }
+ },
+ "filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "requires": {
+ "minimatch": "^5.0.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
+ "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "get-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "ignore-by-default": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jake": {
+ "version": "10.8.5",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
+ "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
+ "requires": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
+ },
+ "memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "mongodb": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.12.1.tgz",
+ "integrity": "sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==",
+ "requires": {
+ "@aws-sdk/credential-providers": "^3.186.0",
+ "bson": "^4.7.0",
+ "mongodb-connection-string-url": "^2.5.4",
+ "saslprep": "^1.0.3",
+ "socks": "^2.7.1"
+ }
+ },
+ "mongodb-connection-string-url": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
+ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
+ "requires": {
+ "@types/whatwg-url": "^8.2.1",
+ "whatwg-url": "^11.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ },
+ "node-fetch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.0.0.tgz",
+ "integrity": "sha512-bici2HCWFnAghTYMcy12WPxrEwJ5qK7GQJOTwTfyEZjyL99ECWxbYQfabZ2U1zrHMKkOBE97Z9iHIuKQfCMdzQ=="
+ },
+ "nodemon": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
+ "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^3.5.2",
+ "debug": "^3.2.7",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.1.2",
+ "pstree.remy": "^1.1.8",
+ "semver": "^5.7.1",
+ "simple-update-notifier": "^1.0.7",
+ "supports-color": "^5.5.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.5"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ }
+ }
+ },
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "requires": {
+ "forwarded": "0.2.0",
+ "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==",
+ "dev": 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=="
+ },
+ "qs": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "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=="
+ },
+ "raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "optional": true,
+ "requires": {
+ "sparse-bitfield": "^3.0.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "simple-update-notifier": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
+ "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
+ "dev": true,
+ "requires": {
+ "semver": "~7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true
+ }
+ }
+ },
+ "smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
+ },
+ "socks": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "requires": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ }
+ },
+ "sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+ "optional": true,
+ "requires": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
+ "optional": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ },
+ "touch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "dev": true,
+ "requires": {
+ "nopt": "~1.0.10"
+ }
+ },
+ "tr46": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "requires": {
+ "punycode": "^2.1.1"
+ }
+ },
+ "tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
+ "optional": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "undefsafe": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "optional": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+ },
+ "webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
+ },
+ "whatwg-url": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "requires": {
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..a6490d8
--- /dev/null
+++ b/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "poketeam",
+ "version": "1.0.0",
+ "description": "",
+ "main": "server.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "node index.js"
+ },
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "dotenv": "^16.0.3",
+ "ejs": "^3.1.8",
+ "express": "^4.18.2",
+ "mongodb": "^4.12.1",
+ "node-fetch": "^2.0.0"
+ },
+ "devDependencies": {
+ "nodemon": "^2.0.20"
+ }
+}
diff --git a/public/images/bg.jpg b/public/images/bg.jpg
new file mode 100644
index 0000000..074f315
Binary files /dev/null and b/public/images/bg.jpg differ
diff --git a/public/images/bgt.png b/public/images/bgt.png
new file mode 100644
index 0000000..3eef180
Binary files /dev/null and b/public/images/bgt.png differ
diff --git a/public/images/favicon.ico b/public/images/favicon.ico
new file mode 100644
index 0000000..51c6be7
Binary files /dev/null and b/public/images/favicon.ico differ
diff --git a/public/styles/Pokemon.css b/public/styles/Pokemon.css
new file mode 100644
index 0000000..6ad9c52
--- /dev/null
+++ b/public/styles/Pokemon.css
@@ -0,0 +1,14 @@
+@font-face {
+ font-family: 'Pokemon';
+ src: url('PokemonSolid.ttf') format('truetype');
+ font-weight: normal;
+ font-style: bold;
+}
+
+@font-face {
+ font-family: 'Pokemon';
+ src: url('PokemonHollow.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
diff --git a/public/styles/PokemonHollow.ttf b/public/styles/PokemonHollow.ttf
new file mode 100644
index 0000000..17a283a
Binary files /dev/null and b/public/styles/PokemonHollow.ttf differ
diff --git a/public/styles/PokemonSolid.ttf b/public/styles/PokemonSolid.ttf
new file mode 100644
index 0000000..918fe22
Binary files /dev/null and b/public/styles/PokemonSolid.ttf differ
diff --git a/public/styles/index.css b/public/styles/index.css
new file mode 100644
index 0000000..6c062c8
--- /dev/null
+++ b/public/styles/index.css
@@ -0,0 +1,60 @@
+* {
+ box-sizing: border-box;
+}
+
+body {
+ background: #EFEFBB;
+ background: -webkit-linear-gradient(to right, #D4D3DD, #EFEFBB);
+ background-image: url('/images/bgt.png'), linear-gradient(#D4D3DD, #EFEFBB);
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ background-position: center;
+ background-size: cover;
+ margin: 0;
+ font-family: 'Pokemon';
+ text-align: center;
+ letter-spacing: 1px;
+}
+
+a {
+ text-decoration: none;
+ color: black;
+ transition: all .2s ease-in-out;
+}
+
+a:hover {
+ font-size: larger;
+ color: white;
+}
+
+h1 {
+ font-size: 5em;
+ letter-spacing: 3px;
+ margin-top: 0;
+}
+
+h2 {
+ font-size: 3em;
+}
+
+.container {
+ position: absolute;
+ bottom: 0;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+.form-container {
+ margin-bottom: 5em;
+}
+
+.all {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+}
+
+.all table {
+ background-image: linear-gradient(#D4D3DD, #EFEFBB);
+}
\ No newline at end of file
diff --git a/public/styles/team.css b/public/styles/team.css
new file mode 100644
index 0000000..3caf75a
--- /dev/null
+++ b/public/styles/team.css
@@ -0,0 +1,47 @@
+* {
+ box-sizing: border-box;
+}
+
+body {
+ background: #EFEFBB;
+ background: -webkit-linear-gradient(to right, #D4D3DD, #EFEFBB);
+ background-image: linear-gradient(#D4D3DD, #EFEFBB);
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ background-position: center;
+ background-size: cover;
+ margin: 0;
+ font-family: 'Pokemon';
+ text-align: center;
+}
+
+a {
+ text-decoration: none;
+ color: black;
+ transition: all .2s ease-in-out;
+}
+
+a:hover {
+ font-size: larger;
+ color: white;
+}
+
+h1 {
+ font-size: 5em;
+ letter-spacing: 3px;
+}
+
+h2 {
+ font-size: 3em;
+}
+
+.team {
+ margin: 0 auto;
+ text-align: center;
+ justify-content: center;
+ max-width: 1900px;
+}
+
+.team img {
+ width: 15%;
+}
\ No newline at end of file
diff --git a/views/archive.ejs b/views/archive.ejs
new file mode 100644
index 0000000..7e057c4
--- /dev/null
+++ b/views/archive.ejs
@@ -0,0 +1,18 @@
+
+
+
+
+ Pokéteam
+
+
+
+
+
+
+
+
+ <%- table %>
+
+
diff --git a/views/create.ejs b/views/create.ejs
new file mode 100644
index 0000000..9dc3d23
--- /dev/null
+++ b/views/create.ejs
@@ -0,0 +1,40 @@
+
+
+
+
+ Process Team
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/views/index.ejs b/views/index.ejs
new file mode 100644
index 0000000..6048c6e
--- /dev/null
+++ b/views/index.ejs
@@ -0,0 +1,21 @@
+
+
+
+
+ Pokéteam
+
+
+
+
+
+
+
+
+
+
+
diff --git a/views/team.ejs b/views/team.ejs
new file mode 100644
index 0000000..ef07562
--- /dev/null
+++ b/views/team.ejs
@@ -0,0 +1,21 @@
+
+
+
+
+ <%- name %>'s Pokémon
+
+
+
+
+
+
+
+ <%- name %>'s Pokémon
+
+ <% sprites.forEach(sprite => { %>
+

+ <% }); %>
+
+
+
+