diff --git a/.devcontainer.json b/.devcontainer.json index 504edf8..1b8228c 100644 --- a/.devcontainer.json +++ b/.devcontainer.json @@ -10,7 +10,11 @@ }, "extensions": [ "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint" + "dbaeumer.vscode-eslint", + "github.vscode-codeql", + "visualstudioexptteam.vscodeintellicode", + "eamodio.gitlens", + "redhat.vscode-yaml" ], "remoteUser": "node", "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached", @@ -19,4 +23,4 @@ "source=ts-esweb-modules,target=/workspace/node_modules,type=volume" ], "postCreateCommand": "sudo chown node node_modules && npm i" -} \ No newline at end of file +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e5a2dcf..39cc68c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,32 +6,26 @@ version: 2 updates: # Maintain dependencies for GitHub Actions - - package-ecosystem: 'github-actions' - directory: '/' + - package-ecosystem: github-actions + directory: / schedule: - interval: 'daily' + interval: daily assignees: - - 'KristianFJones' - reviewers: - - 'KristianFJones' + - KristianFJones # Maintain dependencies for npm - - package-ecosystem: 'npm' # See documentation for possible values - directory: '/' # Location of package manifests + - package-ecosystem: npm + directory: / schedule: - interval: 'daily' + interval: daily versioning-strategy: increase assignees: - - 'KristianFJones' - reviewers: - - 'KristianFJones' + - KristianFJones # Maintain dependencies for Docker - - package-ecosystem: 'docker' # See documentation for possible values - directory: '/' # Location of package manifests + - package-ecosystem: docker + directory: / schedule: - interval: 'daily' + interval: daily assignees: - - 'KristianFJones' - reviewers: - - 'KristianFJones' + - KristianFJones \ No newline at end of file diff --git a/.github/workflows/Code Quality.yml b/.github/workflows/Code Quality.yml index 60845e1..cd9c812 100644 --- a/.github/workflows/Code Quality.yml +++ b/.github/workflows/Code Quality.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: ['ubuntu-latest'] - node: ['14.x'] + node: ['15.x'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2.3.4 @@ -26,7 +26,7 @@ jobs: strategy: matrix: os: ['ubuntu-latest'] - node: ['14.x'] + node: ['15.x'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2.3.4 diff --git a/.github/workflows/Push.yml b/.github/workflows/Push.yml index 5db609c..f440d3d 100644 --- a/.github/workflows/Push.yml +++ b/.github/workflows/Push.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: ['ubuntu-latest', 'windows-latest', 'macos-latest'] - node: ['13.9', '13.10', '13.11', '14.x'] + node: ['15.x'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2.3.4 diff --git a/Dockerfile.dev b/Dockerfile.dev index 986a18d..ef4f908 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,5 +1,4 @@ -ARG VARIANT="15" -FROM node:${VARIANT}-slim +FROM node:15.5-slim # This Dockerfile adds a non-root user with sudo access. Use the "remoteUser" # property in devcontainer.json to use it. On Linux, the container user's GID/UIDs # will be updated to match your local UID/GID (when using the dockerFile property). @@ -13,9 +12,10 @@ ARG USER_GID=${USER_UID} USER root # [Optional] Uncomment this section to install additional OS packages. RUN apt-get update \ - && export DEBIAN_FRONTEND=noninteractive && apt-get -y install --no-install-recommends git sudo ca-certificates \ + && export DEBIAN_FRONTEND=noninteractive && apt-get -y install --no-install-recommends git sudo ca-certificates python3 gcc make pkg-config libx11-dev libxi-dev libxext-dev g++ mesa-common-dev \ && adduser $USERNAME sudo \ && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ - && chmod 0440 /etc/sudoers.d/$USERNAME + && chmod 0440 /etc/sudoers.d/$USERNAME \ + && ln -s /usr/bin/python3 /usr/bin/python USER ${USERNAME} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0e5ac7c..4009e44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@k-foss/ts-worker": "^1.0.5", - "apollo-server-fastify": "^2.19.0", + "apollo-server-fastify": "^3.0.0-alpha.3", "cjstoesm": "^0.1.3", "class-validator": "^0.12.2", "fastify": "^3.8.0", @@ -22,14 +22,14 @@ "devDependencies": { "@k-foss/ts-esnode": "^1.7.0", "@k-foss/ts-estests": "^1.0.6", - "@types/node": "14.14.6", + "@types/node": "^14.14.25", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", "@types/workbox-sw": "^4.3.1", - "@typescript-eslint/eslint-plugin": "^4.8.2", + "@typescript-eslint/eslint-plugin": "^4.14.2", "@typescript-eslint/parser": "^4.8.2", "apollo-server-testing": "^2.19.0", - "eslint": "^7.14.0", + "eslint": "^7.19.0", "eslint-config-prettier": "^6.15.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "2.22.1", @@ -37,11 +37,11 @@ "eslint-plugin-prettier": "3.1.4", "eslint-plugin-promise": "4.2.1", "eslint-plugin-react": "^7.21.5", - "nodemon": "2.0.4", + "nodemon": "^2.0.7", "prettier": "^2.2.0", - "react": "^0.0.0-experimental-4ead6b530", - "react-dom": "^0.0.0-experimental-4ead6b530", - "typescript": "^4.1.2" + "react": "^17.0.1", + "react-dom": "^17.0.1", + "typescript": "^4.1.3" } }, "node_modules/@apollo/protobufjs": { @@ -135,9 +135,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz", - "integrity": "sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -147,7 +147,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -155,12 +155,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/@k-foss/ts-esnode": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@k-foss/ts-esnode/-/ts-esnode-1.7.0.tgz", @@ -315,6 +309,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -323,6 +318,7 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -338,6 +334,7 @@ "version": "3.4.33", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -345,12 +342,14 @@ "node_modules/@types/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" + "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==", + "dev": true }, "node_modules/@types/cookies": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.5.tgz", "integrity": "sha512-3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg==", + "dev": true, "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -362,6 +361,7 @@ "version": "4.17.9", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "*", @@ -373,6 +373,7 @@ "version": "4.17.14", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -383,6 +384,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -400,6 +402,7 @@ "version": "8.0.4", "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.4.tgz", "integrity": "sha512-0TRyJD2o8vbkmJF8InppFcPVcXKk+Rvlg/xvpHBIndSJYpmDWfmtx/ZAtl4f3jR2vfarpTqYgj8MZuJssSoU7Q==", + "dev": true, "dependencies": { "@types/express": "*", "@types/fs-capacitor": "*", @@ -410,17 +413,19 @@ "node_modules/@types/http-assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", - "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==" + "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==", + "dev": true }, "node_modules/@types/http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==" + "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==", + "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "node_modules/@types/json5": { @@ -432,12 +437,14 @@ "node_modules/@types/keygrip": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", + "dev": true }, "node_modules/@types/koa": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.6.tgz", "integrity": "sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A==", + "dev": true, "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -453,6 +460,7 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "dev": true, "dependencies": { "@types/koa": "*" } @@ -465,7 +473,8 @@ "node_modules/@types/mime": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "dev": true }, "node_modules/@types/minimatch": { "version": "3.0.3", @@ -473,9 +482,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "node_modules/@types/node": { - "version": "14.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", - "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==" + "version": "14.14.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", + "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" }, "node_modules/@types/node-fetch": { "version": "2.5.7", @@ -495,12 +504,14 @@ "node_modules/@types/qs": { "version": "6.9.5", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz", - "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==" + "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==", + "dev": true }, "node_modules/@types/range-parser": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", + "dev": true }, "node_modules/@types/react": { "version": "17.0.0", @@ -530,6 +541,7 @@ "version": "1.13.8", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "dev": true, "dependencies": { "@types/mime": "*", "@types/node": "*" @@ -666,15 +678,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.2.tgz", - "integrity": "sha512-gQ06QLV5l1DtvYtqOyFLXD9PdcILYqlrJj2l+CGDlPtmgLUzc1GpqciJFIRvyfvgLALpnxYINFuw+n9AZhPBKQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.2.tgz", + "integrity": "sha512-uMGfG7GFYK/nYutK/iqYJv6K/Xuog/vrRRZX9aEP4Zv1jsYXuvFUMDFLhUnc8WFv3D2R5QhNQL3VYKmvLS5zsQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "4.8.2", - "@typescript-eslint/scope-manager": "4.8.2", + "@typescript-eslint/experimental-utils": "4.14.2", + "@typescript-eslint/scope-manager": "4.14.2", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" @@ -696,6 +709,62 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.14.2", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -709,15 +778,15 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.2.tgz", - "integrity": "sha512-hpTw6o6IhBZEsQsjuw/4RWmceRyESfAiEzAEnXHKG1X7S5DXFaZ4IO1JO7CW1aQ604leQBzjZmuMI9QBCAJX8Q==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", + "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.8.2", - "@typescript-eslint/types": "4.8.2", - "@typescript-eslint/typescript-estree": "4.8.2", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" }, @@ -732,6 +801,123 @@ "eslint": "*" } }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/types": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", + "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.14.2", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/experimental-utils/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/@typescript-eslint/experimental-utils/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/parser": { "version": "4.8.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.8.2.tgz", @@ -910,7 +1096,10 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, "node_modules/ajv": { "version": "6.12.6", @@ -1008,6 +1197,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz", "integrity": "sha512-FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw==", + "dev": true, "dependencies": { "apollo-server-env": "^2.4.5", "apollo-server-plugin-base": "^0.10.2" @@ -1023,6 +1213,7 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz", "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==", + "dev": true, "dependencies": { "apollo-server-caching": "^0.5.2", "apollo-server-env": "^2.4.5" @@ -1031,6 +1222,131 @@ "node": ">=6" } }, + "node_modules/apollo-engine-reporting": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-3.0.0-alpha.3.tgz", + "integrity": "sha512-cYEuj5EK9+O4wY+rvCvPns+np4StteuksacfVj6faAq9TeGJFDzqtbN1TP+3gK3WTRpowr1Qe6W6ZsgQXKOT8w==", + "dependencies": { + "apollo-engine-reporting-protobuf": "^0.300.0-alpha.3", + "apollo-graphql": "^0.5.0", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-errors": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3", + "apollo-server-types": "^0.300.0-alpha.3", + "async-retry": "^1.3.1", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-engine-reporting-protobuf": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.300.0-alpha.3.tgz", + "integrity": "sha512-ev7XDw0EbIcX3EGcTlx/hyDcJGu+30dVBKgbueAdIdAHK/zZRRDmYad3uzPkEbXfzgE1DZkdnaajqMVj3XE/Dw==", + "dependencies": { + "@apollo/protobufjs": "^1.0.4" + } + }, + "node_modules/apollo-engine-reporting/node_modules/apollo-graphql": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz", + "integrity": "sha512-YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==", + "dependencies": { + "apollo-env": "^0.6.5", + "lodash.sortby": "^4.7.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "graphql": "^14.2.1 || ^15.0.0" + } + }, + "node_modules/apollo-engine-reporting/node_modules/apollo-server-caching": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.300.0-alpha.3.tgz", + "integrity": "sha512-4lxa8gc7rd/MrWYuJUWjk69kA1KBLrkBNpoDlJgJLJhr8awstq5Q5zPjxIpPVDyEUi//dy689ziANF0zgVrD3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=12.0 <15.0" + } + }, + "node_modules/apollo-engine-reporting/node_modules/apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dependencies": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/apollo-engine-reporting/node_modules/apollo-server-errors": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.0.0-alpha.3.tgz", + "integrity": "sha512-AQxyV2vX3zdqhuORPXhzVYyBov7viKWjG3TJ8jLHI0+fWxiVGDk11dL74VJnkcW0oeok+l5600P21IVZw8JuXQ==", + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-engine-reporting/node_modules/apollo-server-plugin-base": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.300.0-alpha.3.tgz", + "integrity": "sha512-88cKr93xQbsgVd1OiDKsyqYtBu6STEBH4oX/7u4pgcbJ8iX3NEtpt7spCKQNpjdhRJCVC7qdpQyzlsRVy+epiw==", + "dependencies": { + "apollo-server-types": "^0.300.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-engine-reporting/node_modules/apollo-server-types": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.300.0-alpha.3.tgz", + "integrity": "sha512-Wmlo5ERqoZ8BKEA+IKteQS9SMiNwtN0kkEsRVT0C+rUi/xkin9jQVgGUJGPhaZKYgGrEDpm3pXVrE5gRv9edCw==", + "dependencies": { + "apollo-engine-reporting-protobuf": "^0.300.0-alpha.3", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-engine-reporting/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/apollo-engine-reporting/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/apollo-env": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz", @@ -1049,6 +1365,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.0.tgz", "integrity": "sha512-BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==", + "dev": true, "dependencies": { "apollo-env": "^0.6.5", "lodash.sortby": "^4.7.0" @@ -1078,6 +1395,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz", "integrity": "sha512-qr4DheFP154PGZsd93SSIS9RkqHnR5b6vT+eCloWjy3UIpY+yZ3cVLlttlIjYvOG4xTJ25XEwcHiAExatQo/7g==", + "dev": true, "dependencies": { "@apollo/protobufjs": "^1.0.3" } @@ -1086,6 +1404,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz", "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==", + "dev": true, "dependencies": { "lru-cache": "^5.0.0" }, @@ -1097,6 +1416,7 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz", "integrity": "sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==", + "dev": true, "dependencies": { "@apollographql/apollo-tools": "^0.4.3", "@apollographql/graphql-playground-html": "1.6.26", @@ -1136,6 +1456,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, "dependencies": { "async-limiter": "~1.0.0" } @@ -1144,6 +1465,7 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz", "integrity": "sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==", + "dev": true, "dependencies": { "node-fetch": "^2.1.2", "util.promisify": "^1.0.0" @@ -1156,6 +1478,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz", "integrity": "sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==", + "dev": true, "engines": { "node": ">=6" }, @@ -1164,29 +1487,181 @@ } }, "node_modules/apollo-server-fastify": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server-fastify/-/apollo-server-fastify-2.19.0.tgz", - "integrity": "sha512-mKPgwi/oIioVCiL5QbNNP0NwRgaotaKolxwu+XJytwwzyGdSfO0PnWpY3oasyHjz1hZU5wKkaOAN5rmJ5WjT8g==", + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-fastify/-/apollo-server-fastify-3.0.0-alpha.3.tgz", + "integrity": "sha512-y7BuvbMt/7kFqLZ16KS6P9z0exOt9slH9neQcsyHZPjbBtFX9uJzm2Nbin3x1I1hC3NnlRbElxS6tjot0txIQA==", + "license": "MIT", "dependencies": { "@apollographql/graphql-playground-html": "1.6.26", - "apollo-server-core": "^2.19.0", - "apollo-server-types": "^0.6.1", - "fastify-accepts": "^1.0.0", - "fastify-cors": "^0.2.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.0" + "apollo-server-core": "^3.0.0-alpha.3", + "apollo-server-types": "^0.300.0-alpha.3", + "fastify-accepts": "^2.0.1", + "fastify-cors": "^4.1.0" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-cache-control": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.300.0-alpha.3.tgz", + "integrity": "sha512-P7/LfJbJZBoGP3SF+e4DDbsqb73MeldIGtkujyTkkndQZ+/h9L118w5QCr4zgnRyR6jYJP6LMtRJLmHFBGDm3g==", + "dependencies": { + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-datasource": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.300.0-alpha.3.tgz", + "integrity": "sha512-o1voEQ5aWSTxRmtR9rDnhb0GomPxiywoYiyYgmAqnf35MzfX+aXyfrLNYhMG4wD9cvBS5adRt7unGmKc1CHlfQ==", + "dependencies": { + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-server-caching": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.300.0-alpha.3.tgz", + "integrity": "sha512-4lxa8gc7rd/MrWYuJUWjk69kA1KBLrkBNpoDlJgJLJhr8awstq5Q5zPjxIpPVDyEUi//dy689ziANF0zgVrD3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=12.0 <15.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-server-core": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.0.0-alpha.3.tgz", + "integrity": "sha512-HHxJ+3vZbUBQ91gDIpxTnaGfPwM6W3aLUFe7YysJSkbiD6ZOUS3tM/Ut7f1LR2b3V04O+ayuMzTt+awlZRxZQA==", + "dependencies": { + "@apollographql/apollo-tools": "^0.4.8", + "@apollographql/graphql-playground-html": "1.6.26", + "@types/ws": "^7.2.6", + "apollo-cache-control": "^0.300.0-alpha.3", + "apollo-datasource": "^0.300.0-alpha.3", + "apollo-engine-reporting": "^3.0.0-alpha.3", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-errors": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3", + "apollo-server-types": "^0.300.0-alpha.3", + "apollo-tracing": "^0.300.0-alpha.3", + "fast-json-stable-stringify": "^2.1.0", + "graphql-tag": "^2.11.0", + "graphql-tools": "^4.0.0", + "loglevel": "^1.6.8", + "sha.js": "^2.4.11" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dependencies": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" }, "engines": { "node": ">=6" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-server-errors": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.0.0-alpha.3.tgz", + "integrity": "sha512-AQxyV2vX3zdqhuORPXhzVYyBov7viKWjG3TJ8jLHI0+fWxiVGDk11dL74VJnkcW0oeok+l5600P21IVZw8JuXQ==", + "engines": { + "node": ">=12.0 <15.0" }, "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-server-plugin-base": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.300.0-alpha.3.tgz", + "integrity": "sha512-88cKr93xQbsgVd1OiDKsyqYtBu6STEBH4oX/7u4pgcbJ8iX3NEtpt7spCKQNpjdhRJCVC7qdpQyzlsRVy+epiw==", + "dependencies": { + "apollo-server-types": "^0.300.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/apollo-server-types": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.300.0-alpha.3.tgz", + "integrity": "sha512-Wmlo5ERqoZ8BKEA+IKteQS9SMiNwtN0kkEsRVT0C+rUi/xkin9jQVgGUJGPhaZKYgGrEDpm3pXVrE5gRv9edCw==", + "dependencies": { + "apollo-engine-reporting-protobuf": "^0.300.0-alpha.3", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" } }, + "node_modules/apollo-server-fastify/node_modules/apollo-tracing": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.300.0-alpha.3.tgz", + "integrity": "sha512-9x5rVAWHqRHPEfxsiVW5ryV9s4QAu7RqfyIF94abEEUV8HCVV4t8sTGGp7NPaEkCbCtscb7NAa4yYcQwzzDSoA==", + "dependencies": { + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3" + }, + "engines": { + "node": ">=12.0 <15.0" + }, + "peerDependencies": { + "graphql": "^15.3.0" + } + }, + "node_modules/apollo-server-fastify/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/apollo-server-fastify/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/apollo-server-plugin-base": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz", "integrity": "sha512-uM5uL1lOxbXdgvt/aEIbgs40fV9xA45Y3Mmh0VtQ/ddqq0MXR5aG92nnf8rM+URarBCUfxKJKaYzJJ/CXAnEdA==", + "dev": true, "dependencies": { "apollo-server-types": "^0.6.1" }, @@ -1216,6 +1691,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz", "integrity": "sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==", + "dev": true, "dependencies": { "apollo-reporting-protobuf": "^0.6.1", "apollo-server-caching": "^0.5.2", @@ -1232,6 +1708,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.0.tgz", "integrity": "sha512-cMUYGE6mOEwb9HDqhf4fiPEo2JMhjPIqEprAQEC57El76avRpRig5NM0bnqMZcYJZR5QmLlNcttNccOwf9WrNg==", + "dev": true, "dependencies": { "apollo-server-env": "^2.4.5", "apollo-server-plugin-base": "^0.10.2" @@ -1352,18 +1829,19 @@ } }, "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, "node_modules/async-retry": { "version": "1.3.1", @@ -1400,7 +1878,8 @@ "node_modules/backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true }, "node_modules/balanced-match": { "version": "1.0.0", @@ -1525,6 +2004,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dev": true, "dependencies": { "dicer": "0.3.0" }, @@ -1948,6 +2428,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, "engines": { "node": ">= 0.6" } @@ -1961,6 +2442,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dev": true, "dependencies": { "streamsearch": "0.1.2" }, @@ -2108,13 +2590,13 @@ } }, "node_modules/eslint": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz", - "integrity": "sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", + "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.1", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2124,10 +2606,10 @@ "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", + "espree": "^7.3.1", "esquery": "^1.2.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", @@ -2138,7 +2620,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -2147,7 +2629,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2434,9 +2916,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { "node": ">=4" @@ -2451,12 +2933,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/eslint/node_modules/regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -2491,28 +2967,19 @@ } }, "node_modules/espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "dependencies": { "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", + "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2589,7 +3056,8 @@ "node_modules/eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true }, "node_modules/fast-decode-uri-component": { "version": "1.0.1", @@ -2688,42 +3156,102 @@ } }, "node_modules/fastify-accepts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fastify-accepts/-/fastify-accepts-1.0.0.tgz", - "integrity": "sha512-JVI/zKXjVfwIAdXDZvNKM7CCEWkbTFSZQUEQxrH4KBprbopGxq3R4RSIsVxqhdkVanm90yyVcPtgEa2MnDwPyg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fastify-accepts/-/fastify-accepts-2.0.1.tgz", + "integrity": "sha512-L7yOz/NQ4WMd6RP3eDz1bEBDXRT0Xw7ij8cNUhIw5IwDnKxnpPiX8NZd4HU+N28GEK+X5V3OrbRSYXM1upWdDg==", "dependencies": { "accepts": "^1.3.5", - "fastify-plugin": "^1.2.0" + "fastify-plugin": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/fastify-accepts/node_modules/fastify-plugin": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-1.6.1.tgz", - "integrity": "sha512-APBcb27s+MjaBIerFirYmBLatoPCgmHZM6XP0K+nDL9k0yX8NJPWDY1RAC3bh6z+AB5ULS2j31BUfLMT3uaZ4A==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-2.3.4.tgz", + "integrity": "sha512-I+Oaj6p9oiRozbam30sh39BiuiqBda7yK2nmSPVwDCfIBlKnT8YB3MY+pRQc2Fcd07bf6KPGklHJaQ2Qu81TYQ==", "dependencies": { - "semver": "^6.3.0" + "semver": "^7.3.2" + } + }, + "node_modules/fastify-accepts/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fastify-accepts/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/fastify-accepts/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/fastify-cors": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-cors/-/fastify-cors-0.2.0.tgz", - "integrity": "sha512-bw14FmjHm8oF4TDLkwj2TpssH6O2gE0NpsRqLe7F1Gh9Jf30Lx9ZzIznhqaAKOYS+LJqLIt5snurv7urgqYntA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fastify-cors/-/fastify-cors-4.1.0.tgz", + "integrity": "sha512-Vr4AgypDkRwG16cs1ORnYItZx6FMN+gCpHvP3/nzNZL1HFzf7U/NaSgmC784VqtK8yiqSXZEoTGCsmzeSp8JVw==", "dependencies": { - "fastify-plugin": "^1.2.0", + "fastify-plugin": "^2.0.0", "vary": "^1.1.2" } }, "node_modules/fastify-cors/node_modules/fastify-plugin": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-1.6.1.tgz", - "integrity": "sha512-APBcb27s+MjaBIerFirYmBLatoPCgmHZM6XP0K+nDL9k0yX8NJPWDY1RAC3bh6z+AB5ULS2j31BUfLMT3uaZ4A==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-2.3.4.tgz", + "integrity": "sha512-I+Oaj6p9oiRozbam30sh39BiuiqBda7yK2nmSPVwDCfIBlKnT8YB3MY+pRQc2Fcd07bf6KPGklHJaQ2Qu81TYQ==", "dependencies": { - "semver": "^6.3.0" + "semver": "^7.3.2" + } + }, + "node_modules/fastify-cors/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fastify-cors/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/fastify-cors/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/fastify-error": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/fastify-error/-/fastify-error-0.2.0.tgz", @@ -2769,15 +3297,15 @@ } }, "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", "dev": true, "dependencies": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/fill-range": { @@ -2818,17 +3346,16 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatstr": { @@ -2837,9 +3364,9 @@ "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "node_modules/form-data": { @@ -2867,6 +3394,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", + "dev": true, "engines": { "node": ">=8.5" } @@ -2985,6 +3513,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -3064,6 +3595,7 @@ "version": "0.12.6", "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.6.tgz", "integrity": "sha512-EUNw+OIRXYTPxToSoJjhJvS5aGa94KkdkZnL1I9DCZT64/+rzQNeLeGj+goj2RYuYvoQe1Bmcx0CNZ1GqwBhng==", + "dev": true, "dependencies": { "@apollographql/apollo-tools": "^0.4.3", "apollo-server-env": "^2.4.5", @@ -3133,6 +3665,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz", "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==", + "dev": true, "dependencies": { "busboy": "^0.3.1", "fs-capacitor": "^2.0.4", @@ -3199,6 +3732,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "dev": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -3226,9 +3760,9 @@ "dev": true }, "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { "parent-module": "^1.0.0", @@ -3236,6 +3770,9 @@ }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-lazy": { @@ -3512,9 +4049,9 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { "argparse": "^1.0.7", @@ -3641,9 +4178,9 @@ } }, "node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "node_modules/lodash.get": { @@ -3698,6 +4235,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -3781,18 +4319,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3821,10 +4347,11 @@ } }, "node_modules/nodemon": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz", - "integrity": "sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", + "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", "dev": true, + "hasInstallScript": true, "dependencies": { "chokidar": "^3.2.2", "debug": "^3.2.6", @@ -3834,14 +4361,18 @@ "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^4.0.0" + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" }, "bin": { "nodemon": "bin/nodemon.js" }, "engines": { "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, "node_modules/nodemon/node_modules/debug": { @@ -3939,6 +4470,7 @@ "version": "0.11.5", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==", + "dev": true, "engines": { "node": ">= 10.12.0" } @@ -4403,9 +4935,9 @@ } }, "node_modules/react": { - "version": "0.0.0-experimental-4ead6b530", - "resolved": "https://registry.npmjs.org/react/-/react-0.0.0-experimental-4ead6b530.tgz", - "integrity": "sha512-tpbYm6FEuC1L6tCVXIKYAhgGAkS8DShzKpmXosowZvLqeByeLQQe77Ef6bi5HdEkFm2v0lZffLWckSM8R4TToA==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", + "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", @@ -4416,17 +4948,17 @@ } }, "node_modules/react-dom": { - "version": "0.0.0-experimental-4ead6b530", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.0.0-experimental-4ead6b530.tgz", - "integrity": "sha512-a03ptS8lhhEENNgne6zQMXQWX/Z6WMEBGJQY0laOC0NgJywidePYpgkiE72fUAaj/r7t9a6XsdVyqx4UsEZijg==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", + "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "scheduler": "0.0.0-experimental-4ead6b530" + "scheduler": "^0.20.1" }, "peerDependencies": { - "react": "0.0.0-experimental-4ead6b530" + "react": "17.0.1" } }, "node_modules/react-is": { @@ -4538,6 +5070,15 @@ "rc": "^1.2.8" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/reserved-words": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", @@ -4604,12 +5145,18 @@ "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==" }, "node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/run-parallel": { @@ -4660,9 +5207,9 @@ } }, "node_modules/scheduler": { - "version": "0.0.0-experimental-4ead6b530", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.0.0-experimental-4ead6b530.tgz", - "integrity": "sha512-AzUR6EiDuY32oAnfELgVFPasfovJw4+NtRy7RIam0IUOSgNZKcazqcHzsoW1zDw3AzIBlD1VlRvl5SPJRSlTPg==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", + "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", @@ -4677,7 +5224,8 @@ "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true }, "node_modules/semver-diff": { "version": "3.1.1", @@ -4701,7 +5249,8 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "node_modules/sha.js": { "version": "2.4.11", @@ -4785,23 +5334,53 @@ } }, "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/sonic-boom": { @@ -4855,6 +5434,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, "engines": { "node": ">= 0.6" } @@ -4863,6 +5443,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -5049,12 +5630,16 @@ "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/subscriptions-transport-ws": { "version": "0.9.18", "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "dev": true, "dependencies": { "backo2": "^1.0.2", "eventemitter3": "^3.1.0", @@ -5070,6 +5655,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, "dependencies": { "async-limiter": "~1.0.0" } @@ -5090,54 +5676,48 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/table/node_modules/ajv": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.4.tgz", + "integrity": "sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/term-size": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", @@ -5186,6 +5766,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, "engines": { "node": ">=0.6" } @@ -5316,9 +5897,9 @@ } }, "node_modules/typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5572,18 +6153,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -5643,7 +6212,8 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/zen-observable": { "version": "0.8.15", @@ -5744,9 +6314,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz", - "integrity": "sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -5756,17 +6326,9 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@k-foss/ts-esnode": { @@ -5890,6 +6452,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "dev": true, "requires": { "@types/node": "*" } @@ -5898,6 +6461,7 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "dev": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -5913,6 +6477,7 @@ "version": "3.4.33", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "dev": true, "requires": { "@types/node": "*" } @@ -5920,12 +6485,14 @@ "@types/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" + "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==", + "dev": true }, "@types/cookies": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.5.tgz", "integrity": "sha512-3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg==", + "dev": true, "requires": { "@types/connect": "*", "@types/express": "*", @@ -5937,6 +6504,7 @@ "version": "4.17.9", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "dev": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "*", @@ -5948,6 +6516,7 @@ "version": "4.17.14", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", @@ -5958,6 +6527,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", + "dev": true, "requires": { "@types/node": "*" } @@ -5975,6 +6545,7 @@ "version": "8.0.4", "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.4.tgz", "integrity": "sha512-0TRyJD2o8vbkmJF8InppFcPVcXKk+Rvlg/xvpHBIndSJYpmDWfmtx/ZAtl4f3jR2vfarpTqYgj8MZuJssSoU7Q==", + "dev": true, "requires": { "@types/express": "*", "@types/fs-capacitor": "*", @@ -5985,17 +6556,19 @@ "@types/http-assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", - "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==" + "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==", + "dev": true }, "@types/http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==" + "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==", + "dev": true }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "@types/json5": { @@ -6007,12 +6580,14 @@ "@types/keygrip": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", + "dev": true }, "@types/koa": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.6.tgz", "integrity": "sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A==", + "dev": true, "requires": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -6028,6 +6603,7 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "dev": true, "requires": { "@types/koa": "*" } @@ -6040,7 +6616,8 @@ "@types/mime": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "dev": true }, "@types/minimatch": { "version": "3.0.3", @@ -6048,9 +6625,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "14.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", - "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==" + "version": "14.14.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", + "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" }, "@types/node-fetch": { "version": "2.5.7", @@ -6070,12 +6647,14 @@ "@types/qs": { "version": "6.9.5", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz", - "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==" + "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==", + "dev": true }, "@types/range-parser": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", + "dev": true }, "@types/react": { "version": "17.0.0", @@ -6105,6 +6684,7 @@ "version": "1.13.8", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "dev": true, "requires": { "@types/mime": "*", "@types/node": "*" @@ -6241,42 +6821,149 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.2.tgz", - "integrity": "sha512-gQ06QLV5l1DtvYtqOyFLXD9PdcILYqlrJj2l+CGDlPtmgLUzc1GpqciJFIRvyfvgLALpnxYINFuw+n9AZhPBKQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.2.tgz", + "integrity": "sha512-uMGfG7GFYK/nYutK/iqYJv6K/Xuog/vrRRZX9aEP4Zv1jsYXuvFUMDFLhUnc8WFv3D2R5QhNQL3VYKmvLS5zsQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.8.2", - "@typescript-eslint/scope-manager": "4.8.2", + "@typescript-eslint/experimental-utils": "4.14.2", + "@typescript-eslint/scope-manager": "4.14.2", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" + } + }, + "@typescript-eslint/types": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.2", + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", + "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" + } + }, + "@typescript-eslint/types": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", + "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.2", + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "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, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, - "@typescript-eslint/experimental-utils": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.2.tgz", - "integrity": "sha512-hpTw6o6IhBZEsQsjuw/4RWmceRyESfAiEzAEnXHKG1X7S5DXFaZ4IO1JO7CW1aQ604leQBzjZmuMI9QBCAJX8Q==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.8.2", - "@typescript-eslint/types": "4.8.2", - "@typescript-eslint/typescript-estree": "4.8.2", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, "@typescript-eslint/parser": { "version": "4.8.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.8.2.tgz", @@ -6390,7 +7077,8 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -6472,6 +7160,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz", "integrity": "sha512-FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw==", + "dev": true, "requires": { "apollo-server-env": "^2.4.5", "apollo-server-plugin-base": "^0.10.2" @@ -6481,11 +7170,101 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz", "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==", + "dev": true, "requires": { "apollo-server-caching": "^0.5.2", "apollo-server-env": "^2.4.5" } }, + "apollo-engine-reporting": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-3.0.0-alpha.3.tgz", + "integrity": "sha512-cYEuj5EK9+O4wY+rvCvPns+np4StteuksacfVj6faAq9TeGJFDzqtbN1TP+3gK3WTRpowr1Qe6W6ZsgQXKOT8w==", + "requires": { + "apollo-engine-reporting-protobuf": "^0.300.0-alpha.3", + "apollo-graphql": "^0.5.0", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-errors": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3", + "apollo-server-types": "^0.300.0-alpha.3", + "async-retry": "^1.3.1", + "uuid": "^8.3.0" + }, + "dependencies": { + "apollo-graphql": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz", + "integrity": "sha512-YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==", + "requires": { + "apollo-env": "^0.6.5", + "lodash.sortby": "^4.7.0" + } + }, + "apollo-server-caching": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.300.0-alpha.3.tgz", + "integrity": "sha512-4lxa8gc7rd/MrWYuJUWjk69kA1KBLrkBNpoDlJgJLJhr8awstq5Q5zPjxIpPVDyEUi//dy689ziANF0zgVrD3A==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + }, + "apollo-server-errors": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.0.0-alpha.3.tgz", + "integrity": "sha512-AQxyV2vX3zdqhuORPXhzVYyBov7viKWjG3TJ8jLHI0+fWxiVGDk11dL74VJnkcW0oeok+l5600P21IVZw8JuXQ==", + "requires": {} + }, + "apollo-server-plugin-base": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.300.0-alpha.3.tgz", + "integrity": "sha512-88cKr93xQbsgVd1OiDKsyqYtBu6STEBH4oX/7u4pgcbJ8iX3NEtpt7spCKQNpjdhRJCVC7qdpQyzlsRVy+epiw==", + "requires": { + "apollo-server-types": "^0.300.0-alpha.3" + } + }, + "apollo-server-types": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.300.0-alpha.3.tgz", + "integrity": "sha512-Wmlo5ERqoZ8BKEA+IKteQS9SMiNwtN0kkEsRVT0C+rUi/xkin9jQVgGUJGPhaZKYgGrEDpm3pXVrE5gRv9edCw==", + "requires": { + "apollo-engine-reporting-protobuf": "^0.300.0-alpha.3", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "apollo-engine-reporting-protobuf": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.300.0-alpha.3.tgz", + "integrity": "sha512-ev7XDw0EbIcX3EGcTlx/hyDcJGu+30dVBKgbueAdIdAHK/zZRRDmYad3uzPkEbXfzgE1DZkdnaajqMVj3XE/Dw==", + "requires": { + "@apollo/protobufjs": "^1.0.4" + } + }, "apollo-env": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz", @@ -6501,6 +7280,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.0.tgz", "integrity": "sha512-BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==", + "dev": true, "requires": { "apollo-env": "^0.6.5", "lodash.sortby": "^4.7.0" @@ -6521,6 +7301,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz", "integrity": "sha512-qr4DheFP154PGZsd93SSIS9RkqHnR5b6vT+eCloWjy3UIpY+yZ3cVLlttlIjYvOG4xTJ25XEwcHiAExatQo/7g==", + "dev": true, "requires": { "@apollo/protobufjs": "^1.0.3" } @@ -6529,6 +7310,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz", "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==", + "dev": true, "requires": { "lru-cache": "^5.0.0" } @@ -6537,6 +7319,7 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz", "integrity": "sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==", + "dev": true, "requires": { "@apollographql/apollo-tools": "^0.4.3", "@apollographql/graphql-playground-html": "1.6.26", @@ -6570,6 +7353,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, "requires": { "async-limiter": "~1.0.0" } @@ -6580,6 +7364,7 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz", "integrity": "sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==", + "dev": true, "requires": { "node-fetch": "^2.1.2", "util.promisify": "^1.0.0" @@ -6589,26 +7374,133 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz", "integrity": "sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==", + "dev": true, "requires": {} }, "apollo-server-fastify": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server-fastify/-/apollo-server-fastify-2.19.0.tgz", - "integrity": "sha512-mKPgwi/oIioVCiL5QbNNP0NwRgaotaKolxwu+XJytwwzyGdSfO0PnWpY3oasyHjz1hZU5wKkaOAN5rmJ5WjT8g==", + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-fastify/-/apollo-server-fastify-3.0.0-alpha.3.tgz", + "integrity": "sha512-y7BuvbMt/7kFqLZ16KS6P9z0exOt9slH9neQcsyHZPjbBtFX9uJzm2Nbin3x1I1hC3NnlRbElxS6tjot0txIQA==", "requires": { "@apollographql/graphql-playground-html": "1.6.26", - "apollo-server-core": "^2.19.0", - "apollo-server-types": "^0.6.1", - "fastify-accepts": "^1.0.0", - "fastify-cors": "^0.2.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.0" + "apollo-server-core": "^3.0.0-alpha.3", + "apollo-server-types": "^0.300.0-alpha.3", + "fastify-accepts": "^2.0.1", + "fastify-cors": "^4.1.0" + }, + "dependencies": { + "apollo-cache-control": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.300.0-alpha.3.tgz", + "integrity": "sha512-P7/LfJbJZBoGP3SF+e4DDbsqb73MeldIGtkujyTkkndQZ+/h9L118w5QCr4zgnRyR6jYJP6LMtRJLmHFBGDm3g==", + "requires": { + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3" + } + }, + "apollo-datasource": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.300.0-alpha.3.tgz", + "integrity": "sha512-o1voEQ5aWSTxRmtR9rDnhb0GomPxiywoYiyYgmAqnf35MzfX+aXyfrLNYhMG4wD9cvBS5adRt7unGmKc1CHlfQ==", + "requires": { + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3" + } + }, + "apollo-server-caching": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.300.0-alpha.3.tgz", + "integrity": "sha512-4lxa8gc7rd/MrWYuJUWjk69kA1KBLrkBNpoDlJgJLJhr8awstq5Q5zPjxIpPVDyEUi//dy689ziANF0zgVrD3A==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "apollo-server-core": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.0.0-alpha.3.tgz", + "integrity": "sha512-HHxJ+3vZbUBQ91gDIpxTnaGfPwM6W3aLUFe7YysJSkbiD6ZOUS3tM/Ut7f1LR2b3V04O+ayuMzTt+awlZRxZQA==", + "requires": { + "@apollographql/apollo-tools": "^0.4.8", + "@apollographql/graphql-playground-html": "1.6.26", + "@types/ws": "^7.2.6", + "apollo-cache-control": "^0.300.0-alpha.3", + "apollo-datasource": "^0.300.0-alpha.3", + "apollo-engine-reporting": "^3.0.0-alpha.3", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-errors": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3", + "apollo-server-types": "^0.300.0-alpha.3", + "apollo-tracing": "^0.300.0-alpha.3", + "fast-json-stable-stringify": "^2.1.0", + "graphql-tag": "^2.11.0", + "graphql-tools": "^4.0.0", + "loglevel": "^1.6.8", + "sha.js": "^2.4.11" + } + }, + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + }, + "apollo-server-errors": { + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.0.0-alpha.3.tgz", + "integrity": "sha512-AQxyV2vX3zdqhuORPXhzVYyBov7viKWjG3TJ8jLHI0+fWxiVGDk11dL74VJnkcW0oeok+l5600P21IVZw8JuXQ==", + "requires": {} + }, + "apollo-server-plugin-base": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.300.0-alpha.3.tgz", + "integrity": "sha512-88cKr93xQbsgVd1OiDKsyqYtBu6STEBH4oX/7u4pgcbJ8iX3NEtpt7spCKQNpjdhRJCVC7qdpQyzlsRVy+epiw==", + "requires": { + "apollo-server-types": "^0.300.0-alpha.3" + } + }, + "apollo-server-types": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.300.0-alpha.3.tgz", + "integrity": "sha512-Wmlo5ERqoZ8BKEA+IKteQS9SMiNwtN0kkEsRVT0C+rUi/xkin9jQVgGUJGPhaZKYgGrEDpm3pXVrE5gRv9edCw==", + "requires": { + "apollo-engine-reporting-protobuf": "^0.300.0-alpha.3", + "apollo-server-caching": "^0.300.0-alpha.3", + "apollo-server-env": "^3.0.0-alpha.3" + } + }, + "apollo-tracing": { + "version": "0.300.0-alpha.3", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.300.0-alpha.3.tgz", + "integrity": "sha512-9x5rVAWHqRHPEfxsiVW5ryV9s4QAu7RqfyIF94abEEUV8HCVV4t8sTGGp7NPaEkCbCtscb7NAa4yYcQwzzDSoA==", + "requires": { + "apollo-server-env": "^3.0.0-alpha.3", + "apollo-server-plugin-base": "^0.300.0-alpha.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, "apollo-server-plugin-base": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz", "integrity": "sha512-uM5uL1lOxbXdgvt/aEIbgs40fV9xA45Y3Mmh0VtQ/ddqq0MXR5aG92nnf8rM+URarBCUfxKJKaYzJJ/CXAnEdA==", + "dev": true, "requires": { "apollo-server-types": "^0.6.1" } @@ -6626,6 +7518,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz", "integrity": "sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==", + "dev": true, "requires": { "apollo-reporting-protobuf": "^0.6.1", "apollo-server-caching": "^0.5.2", @@ -6636,6 +7529,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.0.tgz", "integrity": "sha512-cMUYGE6mOEwb9HDqhf4fiPEo2JMhjPIqEprAQEC57El76avRpRig5NM0bnqMZcYJZR5QmLlNcttNccOwf9WrNg==", + "dev": true, "requires": { "apollo-server-env": "^2.4.5", "apollo-server-plugin-base": "^0.10.2" @@ -6728,15 +7622,16 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, "async-retry": { "version": "1.3.1", @@ -6770,7 +7665,8 @@ "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true }, "balanced-match": { "version": "1.0.0", @@ -6873,6 +7769,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dev": true, "requires": { "dicer": "0.3.0" } @@ -7203,7 +8100,8 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true }, "deprecated-decorator": { "version": "0.1.6", @@ -7214,6 +8112,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dev": true, "requires": { "streamsearch": "0.1.2" } @@ -7333,13 +8232,13 @@ "dev": true }, "eslint": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz", - "integrity": "sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", + "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.1", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7349,10 +8248,10 @@ "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", + "espree": "^7.3.1", "esquery": "^1.2.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", @@ -7363,7 +8262,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -7372,7 +8271,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -7383,12 +8282,6 @@ "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "dev": true }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -7627,28 +8520,20 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", + "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } } }, "esprima": { @@ -7706,7 +8591,8 @@ "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true }, "fast-decode-uri-component": { "version": "1.0.1", @@ -7800,40 +8686,82 @@ } }, "fastify-accepts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fastify-accepts/-/fastify-accepts-1.0.0.tgz", - "integrity": "sha512-JVI/zKXjVfwIAdXDZvNKM7CCEWkbTFSZQUEQxrH4KBprbopGxq3R4RSIsVxqhdkVanm90yyVcPtgEa2MnDwPyg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fastify-accepts/-/fastify-accepts-2.0.1.tgz", + "integrity": "sha512-L7yOz/NQ4WMd6RP3eDz1bEBDXRT0Xw7ij8cNUhIw5IwDnKxnpPiX8NZd4HU+N28GEK+X5V3OrbRSYXM1upWdDg==", "requires": { "accepts": "^1.3.5", - "fastify-plugin": "^1.2.0" + "fastify-plugin": "^2.0.0" }, "dependencies": { "fastify-plugin": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-1.6.1.tgz", - "integrity": "sha512-APBcb27s+MjaBIerFirYmBLatoPCgmHZM6XP0K+nDL9k0yX8NJPWDY1RAC3bh6z+AB5ULS2j31BUfLMT3uaZ4A==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-2.3.4.tgz", + "integrity": "sha512-I+Oaj6p9oiRozbam30sh39BiuiqBda7yK2nmSPVwDCfIBlKnT8YB3MY+pRQc2Fcd07bf6KPGklHJaQ2Qu81TYQ==", + "requires": { + "semver": "^7.3.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "requires": { - "semver": "^6.3.0" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, "fastify-cors": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-cors/-/fastify-cors-0.2.0.tgz", - "integrity": "sha512-bw14FmjHm8oF4TDLkwj2TpssH6O2gE0NpsRqLe7F1Gh9Jf30Lx9ZzIznhqaAKOYS+LJqLIt5snurv7urgqYntA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fastify-cors/-/fastify-cors-4.1.0.tgz", + "integrity": "sha512-Vr4AgypDkRwG16cs1ORnYItZx6FMN+gCpHvP3/nzNZL1HFzf7U/NaSgmC784VqtK8yiqSXZEoTGCsmzeSp8JVw==", "requires": { - "fastify-plugin": "^1.2.0", + "fastify-plugin": "^2.0.0", "vary": "^1.1.2" }, "dependencies": { "fastify-plugin": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-1.6.1.tgz", - "integrity": "sha512-APBcb27s+MjaBIerFirYmBLatoPCgmHZM6XP0K+nDL9k0yX8NJPWDY1RAC3bh6z+AB5ULS2j31BUfLMT3uaZ4A==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-2.3.4.tgz", + "integrity": "sha512-I+Oaj6p9oiRozbam30sh39BiuiqBda7yK2nmSPVwDCfIBlKnT8YB3MY+pRQc2Fcd07bf6KPGklHJaQ2Qu81TYQ==", + "requires": { + "semver": "^7.3.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "requires": { - "semver": "^6.3.0" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -7871,12 +8799,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "fill-range": { @@ -7908,14 +8836,13 @@ } }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatstr": { @@ -7924,9 +8851,9 @@ "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "form-data": { @@ -7947,7 +8874,8 @@ "fs-capacitor": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" + "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", + "dev": true }, "fs.realpath": { "version": "1.0.0", @@ -8099,6 +9027,7 @@ "version": "0.12.6", "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.6.tgz", "integrity": "sha512-EUNw+OIRXYTPxToSoJjhJvS5aGa94KkdkZnL1I9DCZT64/+rzQNeLeGj+goj2RYuYvoQe1Bmcx0CNZ1GqwBhng==", + "dev": true, "requires": { "@apollographql/apollo-tools": "^0.4.3", "apollo-server-env": "^2.4.5", @@ -8150,6 +9079,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz", "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==", + "dev": true, "requires": { "busboy": "^0.3.1", "fs-capacitor": "^2.0.4", @@ -8198,6 +9128,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -8219,9 +9150,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -8436,9 +9367,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -8544,9 +9475,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "lodash.get": { @@ -8588,6 +9519,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "requires": { "yallist": "^3.0.2" } @@ -8650,15 +9582,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8681,9 +9604,9 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "nodemon": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz", - "integrity": "sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", + "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", "dev": true, "requires": { "chokidar": "^3.2.2", @@ -8694,8 +9617,8 @@ "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^4.0.0" + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" }, "dependencies": { "debug": { @@ -8775,7 +9698,8 @@ "object-path": { "version": "0.11.5", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", - "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==" + "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==", + "dev": true }, "object.assign": { "version": "4.1.1", @@ -9125,9 +10049,9 @@ } }, "react": { - "version": "0.0.0-experimental-4ead6b530", - "resolved": "https://registry.npmjs.org/react/-/react-0.0.0-experimental-4ead6b530.tgz", - "integrity": "sha512-tpbYm6FEuC1L6tCVXIKYAhgGAkS8DShzKpmXosowZvLqeByeLQQe77Ef6bi5HdEkFm2v0lZffLWckSM8R4TToA==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", + "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -9135,14 +10059,14 @@ } }, "react-dom": { - "version": "0.0.0-experimental-4ead6b530", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.0.0-experimental-4ead6b530.tgz", - "integrity": "sha512-a03ptS8lhhEENNgne6zQMXQWX/Z6WMEBGJQY0laOC0NgJywidePYpgkiE72fUAaj/r7t9a6XsdVyqx4UsEZijg==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", + "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "scheduler": "0.0.0-experimental-4ead6b530" + "scheduler": "^0.20.1" } }, "react-is": { @@ -9230,6 +10154,12 @@ "rc": "^1.2.8" } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "reserved-words": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", @@ -9280,9 +10210,9 @@ "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==" }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -9308,9 +10238,9 @@ } }, "scheduler": { - "version": "0.0.0-experimental-4ead6b530", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.0.0-experimental-4ead6b530.tgz", - "integrity": "sha512-AzUR6EiDuY32oAnfELgVFPasfovJw4+NtRy7RIam0IUOSgNZKcazqcHzsoW1zDw3AzIBlD1VlRvl5SPJRSlTPg==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", + "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -9325,7 +10255,8 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true }, "semver-diff": { "version": "3.1.1", @@ -9349,7 +10280,8 @@ "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "sha.js": { "version": "2.4.11", @@ -9420,20 +10352,38 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } } @@ -9488,12 +10438,14 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true }, "string_decoder": { "version": "1.3.0", @@ -9660,6 +10612,7 @@ "version": "0.9.18", "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "dev": true, "requires": { "backo2": "^1.0.2", "eventemitter3": "^3.1.0", @@ -9672,6 +10625,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, "requires": { "async-limiter": "~1.0.0" } @@ -9690,42 +10644,38 @@ "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" }, "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "ajv": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.4.tgz", + "integrity": "sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true } } }, @@ -9764,7 +10714,8 @@ "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true }, "touch": { "version": "3.1.0", @@ -9861,9 +10812,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==" }, "undefsafe": { "version": "2.0.3", @@ -10066,15 +11017,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -10111,7 +11053,8 @@ "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "zen-observable": { "version": "0.8.15", diff --git a/package.json b/package.json index 94172e0..ffea324 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@k-foss/ts-esweb", "version": "0.0.1", - "description": "TS-Core is a github repo template for TypeScript Projects", + "description": "TS-ESWeb is a WIP ESModule web transpiler", "main": "src/index.tsx", "type": "module", "private": true, @@ -17,14 +17,14 @@ "devDependencies": { "@k-foss/ts-esnode": "^1.7.0", "@k-foss/ts-estests": "^1.0.6", - "@types/node": "14.14.6", + "@types/node": "^14.14.25", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", "@types/workbox-sw": "^4.3.1", - "@typescript-eslint/eslint-plugin": "^4.8.2", + "@typescript-eslint/eslint-plugin": "^4.14.2", "@typescript-eslint/parser": "^4.8.2", "apollo-server-testing": "^2.19.0", - "eslint": "^7.14.0", + "eslint": "^7.19.0", "eslint-config-prettier": "^6.15.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "2.22.1", @@ -32,11 +32,11 @@ "eslint-plugin-prettier": "3.1.4", "eslint-plugin-promise": "4.2.1", "eslint-plugin-react": "^7.21.5", - "nodemon": "2.0.4", + "nodemon": "^2.0.7", "prettier": "^2.2.0", - "react": "^0.0.0-experimental-4ead6b530", - "react-dom": "^0.0.0-experimental-4ead6b530", - "typescript": "^4.1.2" + "react": "^17.0.1", + "react-dom": "^17.0.1", + "typescript": "^4.1.3" }, "author": { "email": "me@kristianjones.dev", @@ -46,7 +46,7 @@ "license": "MIT", "dependencies": { "@k-foss/ts-worker": "^1.0.5", - "apollo-server-fastify": "^2.19.0", + "apollo-server-fastify": "^3.0.0-alpha.3", "cjstoesm": "^0.1.3", "class-validator": "^0.12.2", "fastify": "^3.8.0", diff --git a/src/Library/Transformers.ts b/src/Library/Transformers.ts index 812763d..109d969 100644 --- a/src/Library/Transformers.ts +++ b/src/Library/Transformers.ts @@ -96,8 +96,6 @@ export async function getTransformers( return transformerClass; }), ); - } else { - console.log('Cached'); } return customTransformers; diff --git a/src/Modules/TypeScript/Regex.ts b/src/Modules/TypeScript/Regex.ts new file mode 100644 index 0000000..1b2b323 --- /dev/null +++ b/src/Modules/TypeScript/Regex.ts @@ -0,0 +1,6 @@ +// src/Modules/TypeScript/Regex.ts +export const objectExport = /^\{$\n(?((?^\s+)\S+\s+=\s+\{$\n\k{2}.*$\n^\k\};$\n^)+)^\}$/gmu; + +export const processNodeReplacement = /if\s+\(process\.env\.NODE_ENV \S+\s"production"\)\s{\n\s+\(function\(\)\s{\n(?(.*\n?)*)}\)\(\);\n}/gim; + +export const exportsHandler = /(^exports\.(?\S+)(?=\s+=.*$))(?=.*exports\.\k\s+=)/gmsu; diff --git a/src/Modules/TypeScript/WorkerController.ts b/src/Modules/TypeScript/WorkerController.ts index e639990..ff23a0d 100644 --- a/src/Modules/TypeScript/WorkerController.ts +++ b/src/Modules/TypeScript/WorkerController.ts @@ -99,8 +99,6 @@ export class WorkerController extends BaseEventEmitter return; } - console.log(`Adding ${filePath}`); - this.jobQue.add(filePath); this.pathHistory.add(filePath); } @@ -113,6 +111,8 @@ export class WorkerController extends BaseEventEmitter case TranspileWorkerMessageType.PUSH_DEPENDENCY: if (this.started === false) this.started = true; + console.log(`Added: ${msg.filePath}`); + this.addJob(msg.filePath); break; @@ -121,8 +121,6 @@ export class WorkerController extends BaseEventEmitter break; case TranspileWorkerMessageType.PUSH_OUTPUT: - console.debug(`PUSH_OUTPUT pushModule(${msg.filePath})`); - webModuleController.pushModule( msg.filePath, new WebModule({ diff --git a/src/Modules/TypeScript/transpileWorker.ts b/src/Modules/TypeScript/transpileWorker.ts index 1198c09..1fc1e38 100644 --- a/src/Modules/TypeScript/transpileWorker.ts +++ b/src/Modules/TypeScript/transpileWorker.ts @@ -1,22 +1,31 @@ // src/Server/Utils/Workers/transpileWorker.ts -import { parentPort } from 'worker_threads'; +import { readFileSync } from 'fs'; import { dirname } from 'path'; +import ts from 'typescript'; +import { fileURLToPath, pathToFileURL } from 'url'; +import { parentPort } from 'worker_threads'; +import { createBrotliDecompress } from 'zlib'; +import { getTransformers } from '../../Library/Transformers'; +import { exportsHandler, objectExport, processNodeReplacement } from './Regex'; +import { getTSConfig } from './TSConfig'; import { - TranspileWorkerMessageType, TranspileWorkerMessage, + TranspileWorkerMessageType, } from './WorkerMessages'; -import ts from 'typescript'; -import { getTSConfig } from './TSConfig'; -import { pathToFileURL, fileURLToPath } from 'url'; -import { getTransformers } from '../../Library/Transformers'; -if (!parentPort) throw new Error(`Worker does not have parentPort open`); +if (parentPort === null) { + throw new Error(`Worker does not have parentPort open`); +} /** * Send the Worker ready for new file message to the Worker Controller */ function sendReady(): void { - parentPort?.postMessage({ + if (parentPort === null) { + throw new Error(`Worker does not have parentPort open`); + } + + return parentPort.postMessage({ type: TranspileWorkerMessageType.READY, } as TranspileWorkerMessage); } @@ -29,8 +38,8 @@ async function transpilePath(filePath: string): Promise { const rootDir = dirname(filePath); const tsConfig = getTSConfig(filePath); - - const options = ts.getDefaultCompilerOptions(); + const defaultOptions = ts.getDefaultCompilerOptions(); + const options = { ...defaultOptions, ...tsConfig }; const compilierHost = ts.createCompilerHost({ ...options, @@ -39,6 +48,37 @@ async function transpilePath(filePath: string): Promise { const webModulePromises: Promise[] = []; + compilierHost.readFile = (fileName: string): string => { + const fileContents = readFileSync(fileName); + + const exportVars: string[] = []; + + /** + * https://regex101.com/r/uwAq1N/1 + */ + + let moduleContents = fileContents + ?.toString() + .replace(processNodeReplacement, '$') + .replaceAll(exportsHandler, (test, todo, varName) => { + exportVars.push(varName); + + return `var ${varName}`; + }) + .replace(objectExport, (...args) => { + const { coreCode } = args[args.length - 1]; + + return coreCode.replaceAll('exports.', ''); + }); + + exportVars.map( + (exportVar) => + (moduleContents += `exports.${exportVar} = ${exportVar}\n`), + ); + + return moduleContents; + }; + /** * Overwrite the TypeScript write file function so we can intercept the module data */ @@ -59,7 +99,7 @@ async function transpilePath(filePath: string): Promise { parentPort?.postMessage({ type: TranspileWorkerMessageType.PUSH_OUTPUT, filePath: sourceFile.fileName, - outputCode: contents, + outputCode: contents.replaceAll('exports.', ''), } as TranspileWorkerMessage); if (sourceFile.resolvedModules) { @@ -69,6 +109,11 @@ async function transpilePath(filePath: string): Promise { pathToFileURL(sourceFile.fileName).href, ); + console.log(moduleURLPath); + + if (moduleURLPath.startsWith('node:')) { + continue; + } const modulePath = fileURLToPath(moduleURLPath); parentPort?.postMessage({ @@ -85,7 +130,10 @@ async function transpilePath(filePath: string): Promise { const compilerProgram = ts.createProgram({ rootNames: [filePath], - options: tsConfig, + options: { + ...options, + jsxFragmentFactory: 'Fragment', + }, host: compilierHost, }); compilerProgram.emit( @@ -96,14 +144,10 @@ async function transpilePath(filePath: string): Promise { await getTransformers(compilerProgram), ); - console.log('Emitted program'); - return Promise.all(webModulePromises); } parentPort.on('message', (filePath: string) => { - console.log(`transpiling path: ${filePath}`); - transpilePath(filePath) .then(sendReady) .catch((err) => { diff --git a/src/Modules/WebModule/ImportTransformer.ts b/src/Modules/WebModule/ImportTransformer.ts index 85011f4..30c89d8 100644 --- a/src/Modules/WebModule/ImportTransformer.ts +++ b/src/Modules/WebModule/ImportTransformer.ts @@ -16,15 +16,21 @@ export class ImportTransformer extends Transformer { node.expression.kind === ts.SyntaxKind.ImportKeyword ) { const argument = node.arguments[0]; + if (ts.isStringLiteral(argument)) { - return ts.updateCall(node, node.expression, node.typeArguments, [ - ts.createStringLiteral( - `/Static/import?specifier=${resolve( - dirname(sourceFile.fileName), - argument.text, - )}`, - ), - ]); + return context.factory.updateCallExpression( + node, + node.expression, + node.typeArguments, + [ + context.factory.createStringLiteral( + `/Static/import?specifier=${resolve( + dirname(sourceFile.fileName), + argument.text, + )}`, + ), + ], + ); } } @@ -47,6 +53,8 @@ export class ImportTransformer extends Transformer { // } const relativeTest = /^\.{0,2}[/]/gm; + console.log('Import declaration: ', node.moduleSpecifier.text); + let specifier: string; if (relativeTest.test(node.moduleSpecifier.text)) { specifier = resolve( @@ -54,7 +62,11 @@ export class ImportTransformer extends Transformer { node.moduleSpecifier.text, ); } else { - specifier = node.moduleSpecifier.text; + if (node.moduleSpecifier.text === 'react/jsx-dev-runtime') { + specifier = 'react/cjs/react-jsx-dev-runtime.development'; + } else { + specifier = node.moduleSpecifier.text; + } } let importClause: ts.ImportClause | undefined; @@ -64,15 +76,15 @@ export class ImportTransformer extends Transformer { ts.isImportClause(node.importClause) && node.importClause.name ) { - importClause = ts.updateImportClause( + importClause = context.factory.updateImportClause( node.importClause, + node.importClause?.isTypeOnly || false, undefined, - ts.createNamespaceImport( - ts.createIdentifier( + context.factory.createNamespaceImport( + context.factory.createIdentifier( node.importClause.name.escapedText.toString(), ), ), - node.importClause?.isTypeOnly, ); } @@ -80,12 +92,14 @@ export class ImportTransformer extends Transformer { importClause = node.importClause; } - return ts.updateImportDeclaration( + return context.factory.updateImportDeclaration( node, node.decorators, node.modifiers, importClause, - ts.createLiteral(`/Static/import?specifier=${specifier}`), + context.factory.createStringLiteral( + `/Static/import?specifier=${specifier}`, + ), ); } @@ -109,13 +123,15 @@ export class ImportTransformer extends Transformer { /** * Return updated import path to use our Service Worker served path */ - return ts.updateExportDeclaration( + return context.factory.updateExportDeclaration( node, node.decorators, node.modifiers, - node.exportClause, - ts.createLiteral(`/Static/import?specifier=${specifier}`), node.isTypeOnly, + node.exportClause, + context.factory.createStringLiteral( + `/Static/import?specifier=${specifier}`, + ), ); } diff --git a/src/Modules/WebModule/WebModuleController.ts b/src/Modules/WebModule/WebModuleController.ts index f41c285..87f86bd 100644 --- a/src/Modules/WebModule/WebModuleController.ts +++ b/src/Modules/WebModule/WebModuleController.ts @@ -83,7 +83,6 @@ class WebModuleController extends BaseEventEmitter { const execResult = moduleSubPath.exec(specifier); if (execResult?.groups?.module) { - console.log(`Setting ${execResult.groups.module} to ${filePath}`); this.setSpecifier(execResult.groups.module, filePath); } diff --git a/src/Modules/WebModule/WebModuleRoute.ts b/src/Modules/WebModule/WebModuleRoute.ts index 55ca196..f618db1 100644 --- a/src/Modules/WebModule/WebModuleRoute.ts +++ b/src/Modules/WebModule/WebModuleRoute.ts @@ -14,8 +14,6 @@ export default class WebModuleRoute implements Route { request: FastifyRequest<{ Params: { '*': string } }>, reply: FastifyReply, ): Promise { - console.log('Request to static', request); - const filePath = request.params['*']; if (!filePath) { const err = (new Error() as unknown) as { diff --git a/src/Web_Test/App.tsx b/src/Web_Test/App.tsx index 14c352a..7f40519 100644 --- a/src/Web_Test/App.tsx +++ b/src/Web_Test/App.tsx @@ -1,13 +1,16 @@ // src/App.tsx -import React, { Suspense } from 'react'; - -const HomeRoute = React.lazy(() => import('./Routes/Home')); +import React from 'react'; +import { Counter } from './Components/Counter/index'; export function App(): React.ReactElement { + const sayHello = React.useCallback(() => console.log('HelloWorld'), []); + + console.log('HelloWorld'); + return ( - Loading}> -

HelloWorld

- -
+ <> +

HelloWorld

+ + ); } diff --git a/src/Web_Test/Client.tsx b/src/Web_Test/Client.tsx index 9d76f0d..5dc76d4 100644 --- a/src/Web_Test/Client.tsx +++ b/src/Web_Test/Client.tsx @@ -1,28 +1,53 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -// src/Client.tsx -// Web/src/Client.tsx -/// -import React from 'react'; -import ReactDOM from 'react-dom'; -import { App } from './App'; - -/** - * Count needed so we can request an import with a new param each HMR - */ -// let count = 0; - -/** - * Render the Client Side - */ -function renderClient(): void { - const container = document.getElementById('app')!; - - const root = ReactDOM.unstable_createRoot(container, { - hydrate: true, - }); - - root.render(); +// /* eslint-disable @typescript-eslint/no-non-null-assertion */ +// // src/Client.tsx +// // Web/src/Client.tsx +// /// +// // import React from 'react'; +// import { render } from 'react-dom'; +// // import { renderToString } from 'react-dom/cjs/react-dom-server.browser.development'; + +// /** +// * Count needed so we can request an import with a new param each HMR +// */ +// // let count = 0; + +// /** +// * Render the Client Side +// */ +// async function renderClient(): Promise { +// const container = document.getElementById('app')!; + +// const { App } = await import('./App'); + +// console.log( +// render( +// <> +//
HelloWorld
+// , +// container, +// ), +// ); +// } + +// await renderClient(); + +// export {}; + +import * as ReactDOM from 'react-dom'; + +// console.log(`Hello Message: ${message}`); + +async function renderApp(): Promise { + const container = document.getElementById('app'); + + const { App } = await import('./App'); + + ReactDOM.render( +
+ +
, + container, + ); } -console.log('Starting render client'); -renderClient(); +renderApp(); diff --git a/src/Web_Test/Components/Counter/index.tsx b/src/Web_Test/Components/Counter/index.tsx new file mode 100644 index 0000000..5e9019e --- /dev/null +++ b/src/Web_Test/Components/Counter/index.tsx @@ -0,0 +1,25 @@ +// src/Web_Test/Components/Counter/index.ts +import React from 'react'; + +export function Counter(): React.ReactElement { + const [count, setCount] = React.useState(0); + + const increaseCount = React.useCallback( + () => setCount((currentCount) => currentCount + 1), + [setCount], + ); + const decreaseCount = React.useCallback( + () => setCount((currentCount) => currentCount - 1), + [setCount], + ); + + return ( +
+

Count: {count}

+
+ + +
+
+ ); +} diff --git a/src/Web_Test/Imports.ts b/src/Web_Test/Imports.ts index 14e994e..ea944a9 100644 --- a/src/Web_Test/Imports.ts +++ b/src/Web_Test/Imports.ts @@ -12,3 +12,25 @@ export async function importServiceWorker(): Promise< > { return import('./ServiceWorker'); } + +export async function importReactDOMServer(): Promise< + typeof import('react-dom/server') +> { + return import('react-dom/server'); +} + +export async function importReactDOM(): Promise { + return import('react-dom'); +} + +export async function importReactJSXDev(): Promise< + typeof import('react/jsx-dev-runtime') +> { + return import('react/jsx-dev-runtime'); +} + +export async function importReactJSX(): Promise< + typeof import('react/jsx-runtime') +> { + return import('react/jsx-runtime'); +} diff --git a/src/index.tsx b/src/index.tsx index 6924621..5c32bbd 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -21,7 +21,7 @@ console.log('Creating Fastify Server'); const fastifyServer = await ssrServer.createFastifyServer(); -await fastifyServer.listen(8080, '0.0.0.0'); +await fastifyServer.listen(8082, '0.0.0.0'); console.log('Listening on port 8080'); diff --git a/tsconfig.json b/tsconfig.json index 3771650..1da78ff 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,14 +17,13 @@ // Source Maps "inlineSourceMap": false, - "lib": ["ES2020", "DOM", "WebWorker"], + "lib": ["ESNext", "DOM", "WebWorker"], // Features "experimentalDecorators": true, "noEmit": false, "emitDecoratorMetadata": true, - "jsx": "react", - "reactNamespace": "" + "jsx": "react-jsxdev" }, "include": ["src/**/*", "bin/**/*"], "exclude": ["node_modules"]