From e03b53042f29116d168f48c620424441a3ed90c6 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Fri, 12 Apr 2024 15:30:26 +0100 Subject: [PATCH] Add content from Lucas's personal repo --- .github/labeler.yml | 4 + .github/workflows/caching.yml | 38 + .github/workflows/node_build.yml | 39 + .github/workflows/release-package.yml | 27 + README.md | 6 +- app.js | 12 + package-lock.json | 1555 +++++++++++++++++++++++++ package.json | 28 + public/awesome.jpg | Bin 0 -> 42494 bytes public/index.html | 11 + test/test-pages.js | 12 + 11 files changed, 1730 insertions(+), 2 deletions(-) create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/caching.yml create mode 100644 .github/workflows/node_build.yml create mode 100644 .github/workflows/release-package.yml create mode 100644 app.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/awesome.jpg create mode 100644 public/index.html create mode 100644 test/test-pages.js diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..5711840 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,4 @@ +needs_fr: + - '**' # index.php | src/main.php + - '.*' # .gitignore + - '.*/**' # .github/workflows/label.yml diff --git a/.github/workflows/caching.yml b/.github/workflows/caching.yml new file mode 100644 index 0000000..e980cf1 --- /dev/null +++ b/.github/workflows/caching.yml @@ -0,0 +1,38 @@ +name: Caching with npm + +on: workflow_dispatch + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Cache node modules + id: cache-npm + uses: actions/cache@v3 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - if: ${{ steps.cache-npm.outputs.cache-hit == false }} + name: List the state of node modules + continue-on-error: true + run: npm list + + - name: Install Dependencies + run: npm install + + - name: Build + run: echo npm build + + - name: Test + run: npm test diff --git a/.github/workflows/node_build.yml b/.github/workflows/node_build.yml new file mode 100644 index 0000000..fbdde90 --- /dev/null +++ b/.github/workflows/node_build.yml @@ -0,0 +1,39 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + strategy: + matrix: + os: [ubuntu-latest] + node-version: [16.x, 18.x] + + name: Build using ${{ matrix.node-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm ci + - run: npm run build --if-present + - run: npm test + + label_pr: + name: Label pull request for review + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@main + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/release-package.yml b/.github/workflows/release-package.yml new file mode 100644 index 0000000..53568e6 --- /dev/null +++ b/.github/workflows/release-package.yml @@ -0,0 +1,27 @@ +name: Node.js Package +on: + release: + types: [created] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v2 + with: + node-version: '10.x' + registry-url: 'https://registry.npmjs.org' + - run: npm install + # Publish to npm + - run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + # Setup .npmrc file to publish to GitHub Packages + - uses: actions/setup-node@v2 + with: + registry-url: 'https://npm.pkg.github.com' + # Publish to GitHub Packages + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index a7bf923..ef1a2bf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ -# onboarding-actions -This repository is used in the Docs team onboarding course for Actions. +# node-hello2 +Everything is awesome node demo 🎉 + +Make a change, for a test. diff --git a/app.js b/app.js new file mode 100644 index 0000000..d172d7e --- /dev/null +++ b/app.js @@ -0,0 +1,12 @@ +const http = require('http'); +const express = require('express'); + +const hostname = '127.0.0.1'; +const port = 3000; + +var app = express(); +app.use(express.static(__dirname + '/public')); + +app.listen(port, hostname, () => { + console.log(`Server running at http://${hostname}:${port}/`); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c80db75 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1555 @@ +{ + "name": "@lucascosti/hello2", + "version": "1.0.5", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@lucascosti/hello2", + "version": "1.0.5", + "license": "ISC", + "dependencies": { + "express": "^4.17.1" + }, + "devDependencies": { + "chai": "^4.2.0", + "mocha": "^10.1.0", + "node-fetch": "^2.6.7" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", + "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e6b8805 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "@lucascosti/hello2", + "version": "1.0.5", + "description": "Everything is awesome.", + "main": "app.js", + "scripts": { + "start": "node app.js", + "test": "./node_modules/.bin/mocha --exit" + }, + "repository": { + "type": "git", + "url": "git@github.com:lucascosti/node-hello2.git" + }, + "author": "Lucas Costi", + "license": "ISC", + "bugs": { + "url": "https://github.com/lucascosti/node-hello2/issues" + }, + "homepage": "https://github.com/lucascosti/node-hello2#readme", + "devDependencies": { + "chai": "^4.2.0", + "mocha": "^10.1.0", + "node-fetch": "^2.6.7" + }, + "dependencies": { + "express": "^4.17.1" + } +} diff --git a/public/awesome.jpg b/public/awesome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7814076db4994afc40a5484aa69a7fdff9e496e2 GIT binary patch literal 42494 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%0A_y(zl=4HJ6saqSi~Av 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 Jhvo0|e*k^Xf9L=J literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..1c73603 --- /dev/null +++ b/public/index.html @@ -0,0 +1,11 @@ + + + + + Hello World + + +

Hello world, everything is awesome!

+ Everything is awesome! + + \ No newline at end of file diff --git a/test/test-pages.js b/test/test-pages.js new file mode 100644 index 0000000..dfb0422 --- /dev/null +++ b/test/test-pages.js @@ -0,0 +1,12 @@ +var expect = require('chai').expect; +var fetch = require('node-fetch'); +var app = require('../app.js'); + +it('Page content test', async () => { + let response = await fetch('http://127.0.0.1:3000'); // 127.0.0.1 because of https://github.com/node-fetch/node-fetch/issues/1624 + let body = await response.text(); + // console.log(response.status); + // console.log(body); + expect(response.status).to.equal(200); + expect(body).to.match(/Hello world, everything is awesome/); +})