From d01175bc305a591570ef98f867258e4aad7bb0de Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 24 Feb 2024 08:49:30 +0100 Subject: [PATCH] Initial commit --- .dockerignore | 1 + .gitignore | 3 + Dockerfile | 15 + build-docker.sh | 22 + package-lock.json | 2152 +++++++++++++++++++++++++++ package.json | 25 + public/404.html | 75 + public/bild.jpg | Bin 0 -> 115976 bytes public/embedPopup/script.js | 86 ++ public/embedPopup/style.css | 86 ++ public/error.html | 75 + public/finish.html | 75 + public/hello.all.min.js | 2 + public/index.html | 67 + src/calendar/getFreeTime.ts | 459 ++++++ src/calendar/initCalendar.ts | 239 +++ src/calendar/insertEvent.ts | 174 +++ src/calendar/oauthAccess.ts | 125 ++ src/calendar/openHoursList.ts | 215 +++ src/calendarSync/getAllEvents.ts | 70 + src/calendarSync/misc.ts | 95 ++ src/calendarSync/openHours.ts | 131 ++ src/calendarSync/refreshSync.ts | 622 ++++++++ src/calendarSync/updateEvents.ts | 50 + src/calendarSync/updateWebhooks.ts | 56 + src/captcha.ts | 47 + src/config.ts | 69 + src/database/calendar_ids.ts | 252 ++++ src/database/initDatabase.ts | 28 + src/database/reservedCustomer.ts | 372 +++++ src/database/services.ts | 161 ++ src/database/store.ts | 119 ++ src/database/user.ts | 148 ++ src/database/user_google_tokens.ts | 234 +++ src/lang/default.ts | 31 + src/logger/logger.ts | 189 +++ src/mail/dateText.ts | 54 + src/mail/getConnection.ts | 11 + src/mail/notifyBeforeAppointment.ts | 291 ++++ src/mail/verify.ts | 117 ++ src/mail/verifyFail.ts | 75 + src/main.ts | 35 + src/randomString.ts | 14 + src/redis/clearCache.ts | 30 + src/redis/fillCache.ts | 49 + src/redis/init.ts | 23 + src/redis/keys.ts | 41 + src/requestCounter.ts | 55 + src/user/types.ts | 27 + src/web/express.ts | 10 + src/web/serveFiles.ts | 965 ++++++++++++ tsconfig.json | 9 + 52 files changed, 8376 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100755 build-docker.sh create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/404.html create mode 100644 public/bild.jpg create mode 100644 public/embedPopup/script.js create mode 100644 public/embedPopup/style.css create mode 100644 public/error.html create mode 100644 public/finish.html create mode 100644 public/hello.all.min.js create mode 100644 public/index.html create mode 100644 src/calendar/getFreeTime.ts create mode 100644 src/calendar/initCalendar.ts create mode 100644 src/calendar/insertEvent.ts create mode 100644 src/calendar/oauthAccess.ts create mode 100644 src/calendar/openHoursList.ts create mode 100644 src/calendarSync/getAllEvents.ts create mode 100644 src/calendarSync/misc.ts create mode 100644 src/calendarSync/openHours.ts create mode 100644 src/calendarSync/refreshSync.ts create mode 100644 src/calendarSync/updateEvents.ts create mode 100644 src/calendarSync/updateWebhooks.ts create mode 100644 src/captcha.ts create mode 100644 src/config.ts create mode 100644 src/database/calendar_ids.ts create mode 100644 src/database/initDatabase.ts create mode 100644 src/database/reservedCustomer.ts create mode 100644 src/database/services.ts create mode 100644 src/database/store.ts create mode 100644 src/database/user.ts create mode 100644 src/database/user_google_tokens.ts create mode 100644 src/lang/default.ts create mode 100644 src/logger/logger.ts create mode 100644 src/mail/dateText.ts create mode 100644 src/mail/getConnection.ts create mode 100644 src/mail/notifyBeforeAppointment.ts create mode 100644 src/mail/verify.ts create mode 100644 src/mail/verifyFail.ts create mode 100644 src/main.ts create mode 100644 src/randomString.ts create mode 100644 src/redis/clearCache.ts create mode 100644 src/redis/fillCache.ts create mode 100644 src/redis/init.ts create mode 100644 src/redis/keys.ts create mode 100644 src/requestCounter.ts create mode 100644 src/user/types.ts create mode 100644 src/web/express.ts create mode 100644 src/web/serveFiles.ts create mode 100644 tsconfig.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.env diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..deed335 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a7e75e9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:20 + +ENV TZ=Europe/Berlin + +WORKDIR /usr/src/app + +COPY package*.json ./ +RUN npm install +COPY . . + +RUN npx tsc + +EXPOSE 3000 + +CMD ["node", "dist/main.js"] diff --git a/build-docker.sh b/build-docker.sh new file mode 100755 index 0000000..42c001f --- /dev/null +++ b/build-docker.sh @@ -0,0 +1,22 @@ +DOCKER_REGISTRY_URL="dockreg.ex.umbach.dev" +DOCKER_IMAGE_NAME="zeitadler-terminplaner-backend" + +# only allow to run this script as root +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + +# rm images +docker image rm $DOCKER_IMAGE_NAME + +# build images +docker build -t $DOCKER_IMAGE_NAME . + +# tag images +docker image tag $DOCKER_IMAGE_NAME:latest $DOCKER_REGISTRY_URL/$DOCKER_IMAGE_NAME:latest + +# push to self-hosted docker registry +docker push $DOCKER_REGISTRY_URL/$DOCKER_IMAGE_NAME + +echo "Uploaded $DOCKER_IMAGE_NAME to $DOCKER_REGISTRY_URL" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..fed16b9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2152 @@ +{ + "name": "backend", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@types/amqplib": "^0.10.4", + "amqplib": "^0.10.3", + "cookie-parser": "^1.4.6", + "dotenv": "^16.3.1", + "email-validator": "^2.0.4", + "express": "^4.18.2", + "googleapis": "^130.0.0", + "mariadb": "^3.2.3", + "redis": "^4.6.12", + "typescript": "^5.3.3", + "winston": "^3.11.0" + }, + "devDependencies": { + "@types/cookie-parser": "^1.4.6", + "@types/express": "^4.17.21", + "@types/node": "^20.10.7", + "nodemon": "^3.0.2", + "ts-node": "^10.9.2" + } + }, + "node_modules/@acuminous/bitsyntax": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@acuminous/bitsyntax/-/bitsyntax-0.1.2.tgz", + "integrity": "sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==", + "dependencies": { + "buffer-more-ints": "~1.0.0", + "debug": "^4.3.4", + "safe-buffer": "~5.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/@acuminous/bitsyntax/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/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.5.13.tgz", + "integrity": "sha512-epkUM9D0Sdmt93/8Ozk43PNjLi36RZzG+d/T1Gdu5AI8jvghonTeLYV69WVWdilvFo+PYxbP0TZ0saMvr6nscQ==", + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", + "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.6.tgz", + "integrity": "sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.6.tgz", + "integrity": "sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz", + "integrity": "sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/amqplib": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.10.4.tgz", + "integrity": "sha512-Y5Sqquh/LqDxSgxYaAAFNM0M7GyONtSDCcFMJk+DQwYEjibPyW6y+Yu9H9omdkKc3epyXULmFN3GTaeBHhn2Hg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-KoooCrD56qlLskXPLGUiJxOMnv5l/8m7cQD2OxJ73NPMhuSz9PmvwRD6EpjDyKBVrdJDdQ4bQK7JFNHnNmax0w==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.13", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.13.tgz", + "integrity": "sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz", + "integrity": "sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, + "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==", + "dev": true + }, + "node_modules/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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/amqplib": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.3.tgz", + "integrity": "sha512-UHmuSa7n8vVW/a5HGh2nFPqAEr8+cD4dEZ6u9GjP91nHfr1a54RyAKyra7Sb5NH7NBKOUlyQSMXIp0qAixKexw==", + "dependencies": { + "@acuminous/bitsyntax": "^0.1.2", + "buffer-more-ints": "~1.0.0", + "readable-stream": "1.x >=1.1.9", + "url-parse": "~1.5.10" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/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/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-more-ints": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", + "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/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==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/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==" + }, + "node_modules/email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "engines": { + "node": ">4.0" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/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/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "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==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/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/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.1.1.tgz", + "integrity": "sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", + "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", + "dependencies": { + "gaxios": "^6.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/google-auth-library": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.4.1.tgz", + "integrity": "sha512-Chs7cuzDuav8W/BXOoRgSXw4u0zxYtuqAHETDR5Q6dG1RwNwz7NUKjsDDHAsBV3KkiiJBtJqjbzy1XU1L41w1g==", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/googleapis": { + "version": "130.0.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-130.0.0.tgz", + "integrity": "sha512-+ZSOowVv+vGBTueu1Ot9O7EqC0U4PS9l7fUjzc0ThCT4w4g+r78Vgn17q7eGBB5JMu4hxYC1hbbm1U/MCnYFdg==", + "dependencies": { + "google-auth-library": "^9.0.0", + "googleapis-common": "^7.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/googleapis-common": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-7.0.1.tgz", + "integrity": "sha512-mgt5zsd7zj5t5QXvDanjWguMdHAcJmmDrF9RkInCecNsyV7S7YtGqm5v2IWONNID88osb7zmx5FtrAP12JfD0w==", + "dependencies": { + "extend": "^3.0.2", + "gaxios": "^6.0.3", + "google-auth-library": "^9.0.0", + "qs": "^6.7.0", + "url-template": "^2.0.8", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gtoken": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.0.1.tgz", + "integrity": "sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==", + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "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-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 + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "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==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/mariadb": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-3.2.3.tgz", + "integrity": "sha512-Hyc1ehdUJwzvvzcLU2juZS528wJ6oE8pUlpgY0BAOdpKWcdN1motuugi5lC3jkpCkFpyNknHG7Yg66KASl3aPg==", + "dependencies": { + "@types/geojson": "^7946.0.10", + "@types/node": "^17.0.45", + "denque": "^2.1.0", + "iconv-lite": "^0.6.3", + "lru-cache": "^10.0.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mariadb/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "node_modules/mariadb/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mariadb/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/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==", + "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": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "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.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nodemon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.2.tgz", + "integrity": "sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "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-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==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "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==", + "dev": true + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "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.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redis": { + "version": "4.6.12", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.6.12.tgz", + "integrity": "sha512-41Xuuko6P4uH4VPe5nE3BqXHB7a9lkFL0J29AlxKaIfD6eWO8VO/5PDF9ad2oS+mswMsfFxaM5DlE3tnXT+P8Q==", + "dependencies": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.5.13", + "@redis/graph": "1.1.1", + "@redis/json": "1.0.6", + "@redis/search": "1.1.6", + "@redis/time-series": "1.0.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "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/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/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==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "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==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "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/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/winston": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston-transport/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..246c70e --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "dependencies": { + "@types/amqplib": "^0.10.4", + "amqplib": "^0.10.3", + "cookie-parser": "^1.4.6", + "dotenv": "^16.3.1", + "email-validator": "^2.0.4", + "express": "^4.18.2", + "googleapis": "^130.0.0", + "mariadb": "^3.2.3", + "redis": "^4.6.12", + "typescript": "^5.3.3", + "winston": "^3.11.0" + }, + "devDependencies": { + "@types/cookie-parser": "^1.4.6", + "@types/express": "^4.17.21", + "@types/node": "^20.10.7", + "nodemon": "^3.0.2", + "ts-node": "^10.9.2" + }, + "scripts": { + "start": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/main.ts" + } +} diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..372b04e --- /dev/null +++ b/public/404.html @@ -0,0 +1,75 @@ + + + + Join Button + + + +
+

404

+
+ + + + diff --git a/public/bild.jpg b/public/bild.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88fd49ce3f3aee1092424eb9979bba29af2bd357 GIT binary patch literal 115976 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

Y#SRnxtLd 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 literal 0 HcmV?d00001 diff --git a/public/embedPopup/script.js b/public/embedPopup/script.js new file mode 100644 index 0000000..5813852 --- /dev/null +++ b/public/embedPopup/script.js @@ -0,0 +1,86 @@ +let KKInnovation = { + openPopup: async function ({ url }) { + if (this.isPopupOpen) return; + + this.isPopupOpen = true; + + try { + await this.loadStyles('%PUBLIC_URL%/embedPopup/style.css'); + + let popup = document.createElement('div'); + popup.id = 'KKInnovation-embed-popup'; + + popup.innerHTML = ` +

+
+ +
+
+ + + +
+ `; + document.body.appendChild(popup); + setTimeout(() => { + popup.classList.add('KKInnovation-embed-popup-open'); + + // disable scrolling + document.body.style.overflow = 'hidden'; + }, 0); + + // Add click event listener to the background div + document.getElementById('KKInnovation-embed-popup').addEventListener('click', (event) => { + // Check if the clicked element is the background div + if (event.target.id === 'KKInnovation-embed-popup') { + + // enable scrolling + document.body.style.overflow = 'auto'; + + popup.classList.remove('KKInnovation-embed-popup-open'); + + setTimeout(() => { + this.isPopupOpen = false; + popup.remove(); + + + }, 400); + } + }); + } catch (error) { + this.isPopupOpen = false; + return; + } + }, + loadStyles: async function (url) { + return new Promise((resolve, reject) => { + if (this.stylesLoaded) { + resolve(); + return; + } + + // load stylesheet + let link = document.createElement('link'); + link.type = 'text/css'; + + link.rel = 'stylesheet'; + link.href = url; + + document.getElementsByTagName('head')[0].appendChild(link); + + // wait for stylesheet to load + link.onload = function () { + stylesLoaded = true; + resolve(); + }; + + link.onerror = function () { + reject(); + }; + }) + }, + + + isPopupOpen: false, + stylesLoaded: false, +} \ No newline at end of file diff --git a/public/embedPopup/style.css b/public/embedPopup/style.css new file mode 100644 index 0000000..5ec6b4a --- /dev/null +++ b/public/embedPopup/style.css @@ -0,0 +1,86 @@ +@keyframes KKInnovatopn-embed-popup-spin { + 0% { + transform: translate(-50%, -50%) rotate(0deg); + } + 100% { + transform: translate(-50%, -50%) rotate(360deg); + } +} + +#KKInnovation-embed-popup { + position: fixed; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + z-index: 1000; + + background-color: rgb(0, 0, 0, 0.5); + opacity: 0; + backdrop-filter: blur(5px); + + transition: opacity 300ms cubic-bezier(0.55, 0.085, 0.68, 0.53); +} + +.KKInnovation-embed-popup-open { + opacity: 1 !important; + pointer-events: all !important; +} + + +#KKInnovation-embed-popup-content { + position: absolute; + top: calc(50% + 15px); + left: 50%; + transform: translate(-50%, -50%); + + width: calc(100% - 20px); + height: calc(100% - 30px); + max-width: 1200px; + max-height: 80vh; + + border-radius: 20px; + overflow: show; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.5); + background-color: #fff; +} + +#KKInnovation-embed-popup-loading { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + + width: 50px; + height: 50px; + + border-radius: 50%; + border: 5px solid #0003; + border-top-color: #006eff; + animation: KKInnovatopn-embed-popup-spin 1s infinite ease-in-out; +} + +#KKInnovation-embed-popup-content iframe { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + + width: calc(100% + 2px); + height: calc(100% + 2px); + border: none; + border-radius: 20px; +} + +#KKInnovation-embed-popup-close { + position: absolute; + top: 10px; + right: 10px; + width: 30px; + height: 30px; + + pointer-events: none; + fill: #fff; +} \ No newline at end of file diff --git a/public/error.html b/public/error.html new file mode 100644 index 0000000..41accdb --- /dev/null +++ b/public/error.html @@ -0,0 +1,75 @@ + + + + Join Button + + + +
+

Error :(

+
+ + + + diff --git a/public/finish.html b/public/finish.html new file mode 100644 index 0000000..073d5eb --- /dev/null +++ b/public/finish.html @@ -0,0 +1,75 @@ + + + + Join Button + + + +
+

Thank you for joining! :)

+
+ + + + diff --git a/public/hello.all.min.js b/public/hello.all.min.js new file mode 100644 index 0000000..f8b6665 --- /dev/null +++ b/public/hello.all.min.js @@ -0,0 +1,2 @@ +/*! hellojs v1.20.0 - (c) 2012-2023 Andrew Dodson - MIT https://adodson.com/hello.js/LICENSE */ +if(!Object.create){Object.create=function(){function F(){}return function(o){if(arguments.length!=1){throw new Error("Object.create implementation only accepts one parameter.")}F.prototype=o;return new F}}()}if(!Object.keys){Object.keys=function(o,k,r){r=[];for(k in o){if(r.hasOwnProperty.call(o,k))r.push(k)}return r}}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(s){for(var j=0;j>>0;if(typeof fun!=="function"){throw new TypeError}var thisArg=arguments.length>=2?arguments[1]:void 0;for(var i=0;i(new Date).getTime()/1e3){var diff=utils.diff((session.scope||"").split(SCOPE_SPLIT),(p.qs.state.scope||"").split(SCOPE_SPLIT));if(diff.length===0){promise.fulfill({unchanged:true,network:p.network,authResponse:session});return promise}}}if(opts.display==="page"&&opts.page_uri){p.qs.state.page_uri=utils.url(opts.page_uri).href}if("login"in provider&&typeof provider.login==="function"){provider.login(p)}if(!/\btoken\b/.test(responseType)||parseInt(provider.oauth.version,10)<2||opts.display==="none"&&provider.oauth.grant&&session&&session.refresh_token){p.qs.state.oauth=provider.oauth;p.qs.state.oauth_proxy=opts.oauth_proxy}if(provider.oauth.base64_state){p.qs.state=window.btoa(JSON.stringify(p.qs.state))}else{p.qs.state=encodeURIComponent(JSON.stringify(p.qs.state))}if(parseInt(provider.oauth.version,10)===1){url=utils.qs(opts.oauth_proxy,p.qs,encodeFunction)}else if(opts.display==="none"&&provider.oauth.grant&&session&&session.refresh_token){p.qs.refresh_token=session.refresh_token;url=utils.qs(opts.oauth_proxy,p.qs,encodeFunction)}else{url=utils.qs(provider.oauth.auth,p.qs,encodeFunction)}emit("auth.init",p);if(opts.display==="none"){utils.iframe(url,redirectUri)}else if(opts.display==="popup"){var popup=utils.popup(url,redirectUri,opts.popup);var timer=setInterval(function(){if(!popup||popup.closed){clearInterval(timer);if(!promise.state){var response=error("cancelled","Login has been cancelled");if(!popup){response=error("blocked","Popup was blocked")}response.network=p.network;promise.reject(response)}}},100)}else{window.location=url}return promise.proxy;function encodeFunction(s){return s}function filterEmpty(s){return!!s}},logout:function(){var _this=this;var utils=_this.utils;var error=utils.error;var promise=utils.Promise();var p=utils.args({name:"s",options:"o",callback:"f"},arguments);p.options=p.options||{};promise.proxy.then(p.callback,p.callback);function emit(s,value){hello.emit(s,value)}promise.proxy.then(emit.bind(this,"auth.logout auth"),emit.bind(this,"error"));p.name=p.name||this.settings.default_service;p.authResponse=utils.store(p.name);if(p.name&&!(p.name in _this.services)){promise.reject(error("invalid_network","The network was unrecognized"))}else if(p.name&&p.authResponse){var callback=function(opts){utils.store(p.name,null);promise.fulfill(hello.utils.merge({network:p.name},opts||{}))};var _opts={};if(p.options.force){var logout=_this.services[p.name].logout;if(logout){if(typeof logout==="function"){logout=logout(callback,p)}if(typeof logout==="string"){utils.iframe(logout);_opts.force=null;_opts.message="Logout success on providers site was indeterminate"}else if(logout===undefined){return promise.proxy}}}callback(_opts)}else{promise.reject(error("invalid_session","There was no session to remove"))}return promise.proxy},getAuthResponse:function(service){service=service||this.settings.default_service;if(!service||!(service in this.services)){return null}return this.utils.store(service)||null},events:{}});hello.utils.extend(hello.utils,{error:function(code,message){return{error:{code:code,message:message}}},qs:function(url,params,formatFunction){if(params){formatFunction=formatFunction||encodeURIComponent;for(var x in params){var str="([\\?\\&])"+x+"=[^\\&]*";var reg=new RegExp(str);if(url.match(reg)){url=url.replace(reg,"$1"+x+"="+formatFunction(params[x]));delete params[x]}}}if(!this.isEmpty(params)){return url+(url.indexOf("?")>-1?"&":"?")+this.param(params,formatFunction)}return url},param:function(s,formatFunction){var b;var a={};var m;if(typeof s==="string"){formatFunction=formatFunction||decodeURIComponent;m=s.replace(/^[\#\?]/,"").match(/([^=\/\&]+)=([^\&]+)/g);if(m){for(var i=0;i-1&&t==="string"||o[x].indexOf("o")>-1&&t==="object"||o[x].indexOf("i")>-1&&t==="number"||o[x].indexOf("a")>-1&&t==="object"||o[x].indexOf("f")>-1&&t==="function")){p[x]=args[i++]}else if(typeof o[x]==="string"&&o[x].indexOf("!")>-1){return false}}}return p},url:function(path){if(!path){return window.location}else if(window.URL&&URL instanceof Function&&URL.length!==0){return new URL(path,window.location)}else{var a=document.createElement("a");a.href=path;return a.cloneNode(false)}},diff:function(a,b){return b.filter(function(item){return a.indexOf(item)===-1})},diffKey:function(a,b){if(a||!b){var r={};for(var x in a){if(!(x in b)){r[x]=a[x]}}return r}return a},unique:function(a){if(!Array.isArray(a)){return[]}return a.filter(function(item,index){return a.indexOf(item)===index})},isEmpty:function(obj){if(!obj)return true;if(Array.isArray(obj)){return!obj.length}else if(typeof obj==="object"){for(var key in obj){if(obj.hasOwnProperty(key)){return false}}}return true},Promise:function(){var STATE_PENDING=0;var STATE_FULFILLED=1;var STATE_REJECTED=2;var api=function(executor){if(!(this instanceof api))return new api(executor);this.id="Thenable/1.0.6";this.state=STATE_PENDING;this.fulfillValue=undefined;this.rejectReason=undefined;this.onFulfilled=[];this.onRejected=[];this.proxy={then:this.then.bind(this)};if(typeof executor==="function")executor.call(this,this.fulfill.bind(this),this.reject.bind(this))};api.prototype={fulfill:function(value){return deliver(this,STATE_FULFILLED,"fulfillValue",value)},reject:function(value){return deliver(this,STATE_REJECTED,"rejectReason",value)},then:function(onFulfilled,onRejected){var curr=this;var next=new api;curr.onFulfilled.push(resolver(onFulfilled,next,"fulfill"));curr.onRejected.push(resolver(onRejected,next,"reject"));execute(curr);return next.proxy}};var deliver=function(curr,state,name,value){if(curr.state===STATE_PENDING){curr.state=state;curr[name]=value;execute(curr)}return curr};var execute=function(curr){if(curr.state===STATE_FULFILLED)execute_handlers(curr,"onFulfilled",curr.fulfillValue);else if(curr.state===STATE_REJECTED)execute_handlers(curr,"onRejected",curr.rejectReason)};var execute_handlers=function(curr,name,value){if(curr[name].length===0)return;var handlers=curr[name];curr[name]=[];var func=function(){for(var i=0;i-1){for(var i=0;i=400:typeof r==="object"&&"error"in r){promise.reject(r)}else{promise.fulfill(r)}return}if(r===true){r={success:true}}else if(!r){r={}}if(p.method==="delete"){r=!r||utils.isEmpty(r)?{success:true}:r}if(o.wrap&&(p.path in o.wrap||"default"in o.wrap)){var wrap=p.path in o.wrap?p.path:"default";var time=(new Date).getTime();var b=o.wrap[wrap](r,headers,p);if(b){r=b}}if(r&&"paging"in r&&r.paging.next){if(r.paging.next[0]==="?"){r.paging.next=p.path+r.paging.next}else{r.paging.next+="#"+p.path}}if(!r||"error"in r){promise.reject(r)}else{promise.fulfill(r)}})}};hello.utils.extend(hello.utils,{request:function(p,callback){var _this=this;var error=_this.error;if(!_this.isEmpty(p.data)&&!("FileList"in window)&&_this.hasBinary(p.data)){p.xhr=false;p.jsonp=false}var cors=this.request_cors(function(){return p.xhr===undefined||p.xhr&&(typeof p.xhr!=="function"||p.xhr(p,p.query))});if(cors){formatUrl(p,function(url){var x=_this.xhr(p.method,url,p.headers,p.data,callback);x.onprogress=p.onprogress||null;if(x.upload&&p.onuploadprogress){x.upload.onprogress=p.onuploadprogress}});return}var _query=p.query;p.query=_this.clone(p.query);p.callbackID=_this.globalEvent();if(p.jsonp!==false){p.query.callback=p.callbackID;if(typeof p.jsonp==="function"){p.jsonp(p,p.query)}if(p.method==="get"){formatUrl(p,function(url){_this.jsonp(url,callback,p.callbackID,p.timeout)});return}else{p.query=_query}}if(p.form!==false){p.query.redirect_uri=p.redirect_uri;p.query.state=JSON.stringify({callback:p.callbackID});var opts;if(typeof p.form==="function"){opts=p.form(p,p.query)}if(p.method==="post"&&opts!==false){formatUrl(p,function(url){_this.post(url,p.data,opts,callback,p.callbackID,p.timeout)});return}}callback(error("invalid_request","There was no mechanism for handling this request"));return;function formatUrl(p,callback){var sign;if(p.authResponse&&p.authResponse.oauth&&parseInt(p.authResponse.oauth.version,10)===1){sign=p.query.access_token;delete p.query.access_token;p.proxy=true}if(p.data&&(p.method==="get"||p.method==="delete")){_this.extend(p.query,p.data);p.data=null}var path=_this.qs(p.url,p.query);if(p.proxy){path=_this.qs(p.oauth_proxy,{path:path,access_token:sign||"",then:p.proxy_response_type||(p.method.toLowerCase()==="get"?"redirect":"proxy"),method:p.method.toLowerCase(),suppress_response_codes:p.suppress_response_codes||true})}callback(path)}},request_cors:function(callback){return"withCredentials"in new XMLHttpRequest&&callback()},domInstance:function(type,data){var test="HTML"+(type||"").replace(/^[a-z]/,function(m){return m.toUpperCase()})+"Element";if(!data){return false}if(window[test]){return data instanceof window[test]}else if(window.Element){return data instanceof window.Element&&(!type||data.tagName&&data.tagName.toLowerCase()===type)}else{return!(data instanceof Object||data instanceof Array||data instanceof String||data instanceof Number)&&data.tagName&&data.tagName.toLowerCase()===type}},clone:function(obj){if(obj===null||typeof obj!=="object"||obj instanceof Date||"nodeName"in obj||this.isBinary(obj)||typeof FormData==="function"&&obj instanceof FormData){return obj}if(Array.isArray(obj)){return obj.map(this.clone.bind(this))}var clone={};for(var x in obj){clone[x]=this.clone(obj[x])}return clone},xhr:function(method,url,headers,data,callback){var r=new XMLHttpRequest;var error=this.error;var binary=false;if(method==="blob"){binary=method;method="GET"}method=method.toUpperCase();r.onload=function(e){var json=r.response;try{json=JSON.parse(r.responseText)}catch(_e){if(r.status===401){json=error("access_denied",r.statusText)}}var headers=headersToJSON(r.getAllResponseHeaders());headers.statusCode=r.status;callback(json||(method==="GET"?error("empty_response","Could not get resource"):{}),headers)};r.onerror=function(e){var json=r.responseText;try{json=JSON.parse(r.responseText)}catch(_e){}callback(json||error("access_denied","Could not get resource"))};var x;if(method==="GET"||method==="DELETE"){data=null}else if(data&&typeof data!=="string"&&!(data instanceof FormData)&&!(data instanceof File)&&!(data instanceof Blob)){var f=new FormData;for(x in data)if(data.hasOwnProperty(x)){if(data[x]instanceof HTMLInputElement){if("files"in data[x]&&data[x].files.length>0){f.append(x,data[x].files[0])}}else if(data[x]instanceof Blob){f.append(x,data[x],data.name)}else{f.append(x,data[x])}}data=f}r.open(method,url,true);if(binary){if("responseType"in r){r.responseType=binary}else{r.overrideMimeType("text/plain; charset=x-user-defined")}}if(headers){for(x in headers){r.setRequestHeader(x,headers[x])}}r.send(data);return r;function headersToJSON(s){var r={};var reg=/([a-z\-]+):\s?(.*);?/gi;var m;while(m=reg.exec(s)){r[m[1]]=m[2]}return r}},jsonp:function(url,callback,callbackID,timeout){var _this=this;var error=_this.error;var bool=0;var head=document.getElementsByTagName("head")[0];var operaFix;var result=error("server_error","server_error");var cb=function(){if(!bool++){window.setTimeout(function(){callback(result);head.removeChild(script)},0)}};callbackID=_this.globalEvent(function(json){result=json;return true},callbackID);url=url.replace(new RegExp("=\\?(&|$)"),"="+callbackID+"$1");var script=_this.append("script",{id:callbackID,name:callbackID,src:url,async:true,onload:cb,onerror:cb,onreadystatechange:function(){if(/loaded|complete/i.test(this.readyState)){cb()}}});if(window.navigator.userAgent.toLowerCase().indexOf("opera")>-1){operaFix=_this.append("script",{text:"document.getElementById('"+callbackID+"').onerror();"});script.async=false}if(timeout){window.setTimeout(function(){result=error("timeout","timeout");cb()},timeout)}head.appendChild(script);if(operaFix){head.appendChild(operaFix)}},post:function(url,data,options,callback,callbackID,timeout){var _this=this;var error=_this.error;var doc=document;var form=null;var reenableAfterSubmit=[];var newform;var i=0;var x=null;var bool=0;var cb=function(r){if(!bool++){callback(r)}};_this.globalEvent(cb,callbackID);var win;try{win=doc.createElement('