diff options
29 files changed, 1074 insertions, 506 deletions
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 7a42a311..791b29d8 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -39,7 +39,7 @@ jobs:      runs-on: ubuntu-latest      strategy:        matrix: -        node-version: [10.x, 12.x, 14.x, 15.x] +        node-version: [12.x, 14.x, 15.x, 16.x]      steps:        - uses: actions/checkout@v2        - name: Use Node.js ${{ matrix.node-version }} @@ -63,7 +63,7 @@ jobs:      runs-on: ubuntu-latest      strategy:        matrix: -        node-version: [10.x, 12.x, 14.x, 15.x] +        node-version: [12.x, 14.x, 15.x, 16.x]      steps:        - uses: actions/checkout@v2        - name: Use Node.js ${{ matrix.node-version }} @@ -18,6 +18,7 @@ const passportSocketIo = require('passport.socketio')  const helmet = require('helmet')  const i18n = require('i18n')  const flash = require('connect-flash') +const apiMetrics = require('prometheus-api-metrics')  // core  const config = require('./lib/config') @@ -25,6 +26,7 @@ const logger = require('./lib/logger')  const errors = require('./lib/errors')  const models = require('./lib/models')  const csp = require('./lib/csp') +const metrics = require('./lib/prometheus')  // server setup  const app = express() @@ -63,6 +65,10 @@ app.use(morgan('combined', {    stream: logger.stream  })) +// Register prometheus metrics endpoint +app.use(apiMetrics()) +metrics.setupCustomPrometheusMetrics() +  // socket io  const io = require('socket.io')(server, { cookie: false })  io.engine.ws = new (require('ws').Server)({ @@ -301,7 +307,13 @@ function handleTermSignals () {      }, 0)    })    if (config.path) { -    fs.unlink(config.path) +    fs.unlink(config.path, err => { +      if (err) { +        logger.error(`Could not cleanup socket: ${err.message}`) +      } else { +        logger.info('Successfully cleaned up socket') +      } +    })    }    const checkCleanTimer = setInterval(function () {      if (realtime.isReady()) { @@ -23,7 +23,7 @@ fi  if version_lt "$(yarn --version)" '1.22.0'; then    cat << EOF -FATAL: Your Yarn version is outdated. +FATAL: Your Yarn version is not supported.  Please upgrade to version 1.22.0 or higher and try again.  See https://classic.yarnpkg.com/en/docs/install for instructions. @@ -31,11 +31,11 @@ EOF    exit 1  fi -if version_lt "$(node --version)" 'v10.13.0'; then +if version_lt "$(node --version)" 'v12.0.0'; then    cat << EOF -FATAL: Your Node.js version is outdated. +FATAL: Your Node.js version is not supported. -Please upgrade to version 10.13 or higher and try again. +Please upgrade to version 12 or higher and try again.  We recommend running the latest LTS release, see https://nodejs.org/en/about/releases/ for details.  EOF    exit 1 diff --git a/docs/content/dev/api.md b/docs/content/dev/api.md index 0700ecc3..a8cd22a2 100644 --- a/docs/content/dev/api.md +++ b/docs/content/dev/api.md @@ -36,6 +36,7 @@ These endpoints return information about the current logged-in user and it's not  ## HedgeDoc-server  These endpoints return information about the running HedgeDoc instance. -| Endpoint  | HTTP-Method | Description                                                                                                                                                                            | -| --------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/status` | `GET`       | **Returns the current status of the HedgeDoc instance.**<br>The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. | +| Endpoint   | HTTP-Method | Description                                                                                                                                                                              | +| ---------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/status`  | `GET`       | **Returns the current status of the HedgeDoc instance.**<br>The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. | +| `/metrics` | `GET`       | **Prometheus-compatible endpoint**<br>Exposes the same stats as `/status` in addition to various Node.js performance figures. Available since HedgeDoc 1.8                               | diff --git a/docs/content/guides/auth/saml.md b/docs/content/guides/auth/saml.md index 9cc1f8ba..211a4a97 100644 --- a/docs/content/guides/auth/saml.md +++ b/docs/content/guides/auth/saml.md @@ -14,8 +14,8 @@ you want to match your IdP, you can use more configurations as below.    - `identifierFormat`: A format of unique id to identify the user of IdP, which is the format based on email address as      default. It is recommend that you use as below. -    - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress (default) -    - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified +    - `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` (default) +    - `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`    - `config.json`:      ```javascript diff --git a/docs/content/guides/migrations-and-breaking-changes.md b/docs/content/guides/migrations-and-breaking-changes.md deleted file mode 100644 index bbc320b1..00000000 --- a/docs/content/guides/migrations-and-breaking-changes.md +++ /dev/null @@ -1,55 +0,0 @@ -# Migrations and Notable Changes - -## Migrating to 1.4.0 - -We dropped support for node 6 with this version. If you have any trouble running this version, please double check that you are running at least node 8! - -## Migrating to 1.3.2 - -This is not a breaking change, but to stay up to date with the community -repository, you may need to update a few urls. This is not a breaking change. - -See more at [issue #10](https://github.com/hedgedoc/hedgedoc/issues/10) - -### Native setup using git - -Change the upstream remote using `git remote set-url origin https://github.com/hedgedoc/hedgedoc.git`. - -### Docker - -When you use our [container repository](https://github.com/hedgedoc/container)  -(which was previously `hedgedoc-container`) all you can simply run `git pull` and -your `docker-compose.yml` will be updated. - -When you setup things yourself, make sure you use the new image: -[`quay.io/hedgedoc/hedgedoc`](https://quay.io/repository/hedgedoc/hedgedoc?tab=tags). - -### Heroku - -All you need to do is [disconnect GitHub](https://devcenter.heroku.com/articles/github-integration#disconnecting-from-github) -and [reconnect it](https://devcenter.heroku.com/articles/github-integration#enabling-github-integration) -with this new repository. - -Or you can use our Heroku button and redeploy your instance and link the old -database again. - -## Migrating to 1.1.0 - -We deprecated the older lower case config style and moved on to camel case style. Please have a look at the current `config.json.example` and check the warnings on startup. - -*Notice: This is not a breaking change right now but will be in the future* - -## Migrating to 0.5.0 - -[migration-to-0.5.0 migration tool](https://github.com/hackmdio/migration-to-0.5.0) - -We don't use LZString to compress socket.io data and DB data after version 0.5.0. -Please run the migration tool if you're upgrading from the old version. - -## Migrating to 0.4.0 - -[migration-to-0.4.0 migration tool](https://github.com/hackmdio/migration-to-0.4.0) - -We've dropped MongoDB after version 0.4.0. -So here is the migration tool for you to transfer the old DB data to the new DB. -This tool is also used for official service. diff --git a/docs/content/images/hedgedoc_logo_black.svg b/docs/content/images/hedgedoc_logo_black.svg new file mode 100644 index 00000000..b8bcd7ae --- /dev/null +++ b/docs/content/images/hedgedoc_logo_black.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="786" height="197.266" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M248.07 58v79.68h9.297v-35.058h45.416v35.058h9.296V58h-9.296v36.123h-45.416V58zm187.351 0v33.518c-2.372-2.513-5.223-4.478-8.552-5.895-3.33-1.417-6.941-2.125-10.836-2.125-5.134 0-9.73 1.193-13.785 3.584-4.054 2.392-7.243 5.667-9.56 9.828-2.321 4.163-3.48 8.897-3.48 14.208 0 5.314 1.159 10.051 3.48 14.21 2.317 4.161 5.506 7.437 9.56 9.828 4.055 2.391 8.65 3.587 13.785 3.587 4.001 0 7.702-.753 11.102-2.258 3.4-1.506 6.285-3.568 8.659-6.19l.479 7.385h7.913V58zm157.87.106v79.68h21.673c15.653 0 27.676-3.488 36.068-10.466 8.392-6.974 12.59-16.803 12.59-29.48 0-12.642-4.198-22.425-12.59-29.348-8.392-6.923-20.415-10.386-36.068-10.386zm9.296 8.5h12.377c12.606 0 22.275 2.719 29.004 8.153 6.728 5.438 10.091 13.13 10.091 23.082 0 9.985-3.363 17.724-10.09 23.212-6.73 5.49-16.399 8.234-29.005 8.234h-12.377zm-118.295 16.89c-5.134 0-9.73 1.196-13.784 3.587-4.055 2.391-7.244 5.666-9.562 9.827-2.32 4.161-3.48 8.897-3.48 14.21 0 5.312 1.16 10.048 3.48 14.21 2.318 4.16 5.507 7.435 9.562 9.826 4.054 2.391 8.65 3.586 13.784 3.586 3.895 0 7.507-.709 10.837-2.125 3.328-1.416 6.179-3.38 8.551-5.895v2.76c0 7.225-1.815 13.005-5.444 17.345-3.632 4.336-9.216 6.505-16.759 6.505-2.975 0-5.737-.487-8.286-1.46-2.55-.975-4.818-2.329-6.8-4.063l-4.355 7.33c2.619 1.948 5.558 3.46 8.816 4.541 3.258 1.082 6.745 1.62 10.465 1.62 6.763 0 12.457-1.373 17.08-4.116 4.62-2.745 8.116-6.578 10.49-11.5 2.372-4.923 3.558-10.66 3.558-17.211V84.559h-7.915l-.479 7.385c-2.372-2.621-5.258-4.684-8.658-6.19-3.399-1.505-7.1-2.257-11.1-2.257zm281.895 0c-5.312 0-10.049 1.196-14.21 3.587-4.16 2.39-7.436 5.666-9.828 9.828-2.389 4.161-3.584 8.896-3.584 14.208 0 5.313 1.195 10.05 3.584 14.21 2.392 4.162 5.667 7.437 9.828 9.826 4.161 2.391 8.898 3.587 14.21 3.587 4.001 0 7.683-.69 11.048-2.072 3.364-1.382 6.286-3.311 8.765-5.79l-6.11-6.056c-1.665 1.842-3.665 3.293-6.001 4.355-2.338 1.063-4.905 1.595-7.702 1.595-3.577 0-6.765-.85-9.562-2.551-2.798-1.7-5.003-4.037-6.614-7.01-1.611-2.975-2.416-6.34-2.416-10.094 0-3.788.805-7.162 2.416-10.12 1.61-2.956 3.816-5.284 6.614-6.983 2.797-1.701 5.985-2.55 9.562-2.55 2.797 0 5.364.522 7.702 1.565a17.433 17.433 0 0 1 6.001 4.384l6.11-6.11c-2.479-2.442-5.4-4.355-8.765-5.736-3.365-1.382-7.047-2.072-11.048-2.072zm-413.42.002c-5.24 0-9.932 1.188-14.076 3.56-4.144 2.373-7.402 5.623-9.774 9.748-2.372 4.125-3.56 8.808-3.56 14.05 0 5.384 1.267 10.18 3.8 14.395 2.53 4.214 6.027 7.516 10.49 9.907 4.462 2.39 15.298 3.585 15.298 3.585 3.577 0 7.286-.602 11.13-1.807 3.841-1.204 7.692-3.416 11.552-6.64l-5.152-6.586c-2.622 2.479-5.525 4.276-8.71 5.392-3.19 1.114-6.216 1.673-9.086 1.673-5.17 0-9.588-1.514-13.253-4.54-3.665-3.03-5.94-6.9-6.825-11.61h45.045v-3.557c0-5.347-1.152-10.094-3.454-14.236-2.302-4.144-5.47-7.401-9.507-9.775-4.038-2.37-8.676-3.559-13.918-3.559zm200.366 0c-5.241 0-9.933 1.188-14.076 3.56-4.144 2.373-7.402 5.623-9.774 9.748-2.373 4.125-3.56 8.808-3.56 14.05 0 5.384 1.265 10.18 3.799 14.395 2.53 4.214 6.029 7.516 10.49 9.907 4.462 2.39 9.562 3.585 15.299 3.585 3.577 0 7.285-.602 11.128-1.807 3.842-1.204 7.693-3.416 11.554-6.64l-5.154-6.586c-2.62 2.479-5.523 4.276-8.71 5.392-3.187 1.114-6.215 1.673-9.084 1.673-5.17 0-9.588-1.514-13.253-4.54-3.665-3.03-5.94-6.9-6.826-11.61h45.045v-3.557c0-5.347-1.151-10.094-3.453-14.236-2.302-4.144-5.471-7.401-9.508-9.775-4.038-2.37-8.675-3.559-13.917-3.559zm148.248 0c-5.312 0-10.047 1.194-14.208 3.585-4.162 2.391-7.438 5.667-9.829 9.828-2.389 4.16-3.584 8.897-3.584 14.208 0 5.313 1.195 10.05 3.584 14.21 2.392 4.162 5.667 7.437 9.83 9.828 4.16 2.39 8.895 3.585 14.207 3.585 5.311 0 10.048-1.194 14.21-3.585 4.16-2.391 7.435-5.666 9.826-9.827 2.391-4.161 3.586-8.898 3.586-14.211 0-5.311-1.195-10.047-3.586-14.208-2.39-4.161-5.666-7.437-9.827-9.828-4.16-2.391-8.898-3.585-14.209-3.585zM485.09 91.464c3.576 0 6.764.85 9.56 2.552 2.799 1.699 5.004 4.029 6.614 6.983 1.612 2.958 2.417 6.332 2.417 10.12 0 3.754-.805 7.118-2.417 10.093-1.61 2.975-3.815 5.311-6.613 7.012-2.797 1.7-5.985 2.549-9.561 2.549-3.577 0-6.765-.85-9.562-2.549-2.798-1.7-5.002-4.037-6.612-7.012-1.613-2.975-2.418-6.339-2.418-10.093 0-3.788.805-7.162 2.418-10.12 1.61-2.954 3.814-5.284 6.612-6.983 2.797-1.701 5.985-2.552 9.562-2.552zm-68.26.001c3.578 0 6.766.85 9.562 2.55 2.798 1.7 5.002 4.029 6.614 6.985 1.61 2.957 2.416 6.331 2.416 10.118 0 3.754-.806 7.118-2.416 10.093-1.612 2.975-3.816 5.313-6.614 7.012-2.796 1.701-5.984 2.55-9.562 2.55-3.577 0-6.764-.849-9.56-2.55-2.798-1.7-5.003-4.037-6.614-7.012-1.611-2.975-2.417-6.339-2.417-10.093 0-3.787.806-7.16 2.417-10.118 1.61-2.956 3.816-5.285 6.614-6.986 2.796-1.699 5.983-2.549 9.56-2.549zm-64.114 0c4.638 0 8.57 1.46 11.792 4.384 3.222 2.922 5.222 6.7 6.002 11.34h-36.015c.78-4.567 2.834-8.33 6.163-11.288 3.328-2.956 7.348-4.435 12.058-4.435zm200.366 0c4.638 0 8.568 1.46 11.79 4.384 3.222 2.922 5.224 6.7 6.003 11.34H534.86c.779-4.567 2.833-8.33 6.162-11.288 3.328-2.956 7.348-4.435 12.059-4.435zm148.3 0c3.576 0 6.766.85 9.562 2.55 2.798 1.701 5.002 4.03 6.614 6.986 1.61 2.956 2.416 6.33 2.416 10.118 0 3.754-.806 7.119-2.416 10.094-1.612 2.974-3.816 5.31-6.614 7.011-2.796 1.7-5.986 2.55-9.562 2.55-3.577 0-6.764-.85-9.56-2.55-2.798-1.7-5.004-4.037-6.614-7.011-1.613-2.975-2.417-6.34-2.417-10.094 0-3.789.804-7.162 2.417-10.118 1.61-2.956 3.816-5.285 6.613-6.986 2.797-1.7 5.984-2.55 9.561-2.55z" fill-rule="nonzero"/><path d="m187.345 108.66 9.992-9.992-9.992-9.992 7.517-11.963-11.964-7.518 4.667-13.337-13.336-4.667 1.581-14.04-14.04-1.583-1.583-14.042-14.04 1.582-4.668-13.337-13.336 4.666-7.52-11.963L108.66 9.99 98.67 0l-9.992 9.992-11.964-7.517-7.517 11.963L55.86 9.771l-4.667 13.337-14.041-1.583-1.582 14.041-14.04 1.582 1.581 14.04-13.338 4.668 4.667 13.337L2.475 76.71l7.518 11.966L0 98.668l9.992 9.993-7.517 11.964 11.964 7.517-4.667 13.337 13.338 4.668-1.582 14.039 14.04 1.583 1.583 14.04 14.041-1.581 4.667 13.335 13.336-4.665 7.518 11.964 11.963-7.518 9.992 9.899 9.992-9.896 11.964 7.517 7.517-11.966 13.338 4.668 4.666-13.337 14.042 1.581 1.581-14.041 14.042-1.582-1.583-14.04 13.338-4.668-4.667-13.338 11.964-7.517z" fill="#b51f08" fill-rule="nonzero"/><path d="M167.114 114.463c0-19.312-15.655-34.967-34.967-34.967-9.592 0-18.282 3.865-24.599 10.121l-.004-.004-8.909 8.91-7.285-7.285c-6.409-7.312-15.81-11.934-26.296-11.934-19.313 0-34.968 15.655-34.968 34.967 0 10.092 4.28 19.178 11.117 25.56l57.466 57.435 56.196-56.233c7.022-6.608 12.25-15.934 12.25-26.57" fill="#fdd49a" fill-rule="nonzero"/><path d="m98.635 98.522-7.285-7.284c-6.41-7.312-15.81-11.935-26.297-11.935-19.312 0-34.967 15.656-34.967 34.967 0 10.092 4.28 19.178 11.117 25.56l57.466 57.436" fill="url(#a)" fill-rule="nonzero"/><path d="m98.669 197.266-.034-98.744" fill="none"/><path d="M108.65 187.336a14.075 14.075 0 0 0-10.001-4.157 14.075 14.075 0 0 0-10.002 4.157c.04 5.49 4.502 9.927 10.001 9.927 5.5 0 9.962-4.439 10.003-9.927M86.967 126.87a7.643 7.643 0 1 1-15.287 0 7.643 7.643 0 1 1 15.287 0" fill="#010007" fill-rule="nonzero"/><path d="M84.345 125.724a2.116 2.116 0 0 1-2.118 2.117 2.117 2.117 0 1 1 0-4.236 2.12 2.12 0 0 1 2.118 2.12" fill="#fffffa" fill-rule="nonzero"/><path d="M125.732 126.87a7.644 7.644 0 1 1-15.288 0 7.644 7.644 0 1 1 15.288 0" fill="#010007" fill-rule="nonzero"/><path d="M123.11 125.724c0 1.172-.95 2.117-2.118 2.117a2.117 2.117 0 1 1 0-4.236 2.12 2.12 0 0 1 2.118 2.12" fill="#fffffa" fill-rule="nonzero"/><defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-64.537 160.23 25.078) scale(61.7694)"><stop offset="0" stop-color="#fdd49a"/><stop offset="1" stop-color="#dca055"/></linearGradient></defs></svg>
\ No newline at end of file diff --git a/docs/content/images/hedgedoc_logo_horizontal.svg b/docs/content/images/hedgedoc_logo_horizontal.svg deleted file mode 100644 index 387e2c03..00000000 --- a/docs/content/images/hedgedoc_logo_horizontal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="786" height="197.266" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M248.07 58v79.68h9.297v-35.058h45.416v35.058h9.296V58h-9.296v36.123h-45.416V58zm187.351 0v33.518c-2.372-2.513-5.223-4.478-8.552-5.895-3.33-1.417-6.941-2.125-10.836-2.125-5.134 0-9.73 1.193-13.785 3.584-4.054 2.392-7.243 5.667-9.56 9.828-2.321 4.163-3.48 8.897-3.48 14.208 0 5.314 1.159 10.051 3.48 14.21 2.317 4.161 5.506 7.437 9.56 9.828 4.055 2.391 8.65 3.587 13.785 3.587 4.001 0 7.702-.753 11.102-2.258 3.4-1.506 6.285-3.568 8.659-6.19l.479 7.385h7.913V58zm157.87.106v79.68h21.673c15.653 0 27.676-3.488 36.068-10.466 8.392-6.974 12.59-16.803 12.59-29.48 0-12.642-4.198-22.425-12.59-29.348-8.392-6.923-20.415-10.386-36.068-10.386zm9.296 8.5h12.377c12.606 0 22.275 2.719 29.004 8.153 6.728 5.438 10.091 13.13 10.091 23.082 0 9.985-3.363 17.724-10.09 23.212-6.73 5.49-16.399 8.234-29.005 8.234h-12.377zm-118.295 16.89c-5.134 0-9.73 1.196-13.784 3.587-4.055 2.391-7.244 5.666-9.562 9.827-2.32 4.161-3.48 8.897-3.48 14.21 0 5.312 1.16 10.048 3.48 14.21 2.318 4.16 5.507 7.435 9.562 9.826 4.054 2.391 8.65 3.586 13.784 3.586 3.895 0 7.507-.709 10.837-2.125 3.328-1.416 6.179-3.38 8.551-5.895v2.76c0 7.225-1.815 13.005-5.444 17.345-3.632 4.336-9.216 6.505-16.759 6.505-2.975 0-5.737-.487-8.286-1.46-2.55-.975-4.818-2.329-6.8-4.063l-4.355 7.33c2.619 1.948 5.558 3.46 8.816 4.541 3.258 1.082 6.745 1.62 10.465 1.62 6.763 0 12.457-1.373 17.08-4.116 4.62-2.745 8.116-6.578 10.49-11.5 2.372-4.923 3.558-10.66 3.558-17.211V84.559h-7.915l-.479 7.385c-2.372-2.621-5.258-4.684-8.658-6.19-3.399-1.505-7.1-2.257-11.1-2.257zm281.895 0c-5.312 0-10.049 1.196-14.21 3.587-4.16 2.39-7.436 5.666-9.828 9.828-2.389 4.161-3.584 8.896-3.584 14.208 0 5.313 1.195 10.05 3.584 14.21 2.392 4.162 5.667 7.437 9.828 9.826 4.161 2.391 8.898 3.587 14.21 3.587 4.001 0 7.683-.69 11.048-2.072 3.364-1.382 6.286-3.311 8.765-5.79l-6.11-6.056c-1.665 1.842-3.665 3.293-6.001 4.355-2.338 1.063-4.905 1.595-7.702 1.595-3.577 0-6.765-.85-9.562-2.551-2.798-1.7-5.003-4.037-6.614-7.01-1.611-2.975-2.416-6.34-2.416-10.094 0-3.788.805-7.162 2.416-10.12 1.61-2.956 3.816-5.284 6.614-6.983 2.797-1.701 5.985-2.55 9.562-2.55 2.797 0 5.364.522 7.702 1.565a17.433 17.433 0 016.001 4.384l6.11-6.11c-2.479-2.442-5.4-4.355-8.765-5.736-3.365-1.382-7.047-2.072-11.048-2.072zm-413.42.002c-5.24 0-9.932 1.188-14.076 3.56-4.144 2.373-7.402 5.623-9.774 9.748-2.372 4.125-3.56 8.808-3.56 14.05 0 5.384 1.267 10.18 3.8 14.395 2.53 4.214 6.027 7.516 10.49 9.907 4.462 2.39 15.298 3.585 15.298 3.585 3.577 0 7.286-.602 11.13-1.807 3.841-1.204 7.692-3.416 11.552-6.64l-5.152-6.586c-2.622 2.479-5.525 4.276-8.71 5.392-3.19 1.114-6.216 1.673-9.086 1.673-5.17 0-9.588-1.514-13.253-4.54-3.665-3.03-5.94-6.9-6.825-11.61h45.045v-3.557c0-5.347-1.152-10.094-3.454-14.236-2.302-4.144-5.47-7.401-9.507-9.775-4.038-2.37-8.676-3.559-13.918-3.559zm200.366 0c-5.241 0-9.933 1.188-14.076 3.56-4.144 2.373-7.402 5.623-9.774 9.748-2.373 4.125-3.56 8.808-3.56 14.05 0 5.384 1.265 10.18 3.799 14.395 2.53 4.214 6.029 7.516 10.49 9.907 4.462 2.39 9.562 3.585 15.299 3.585 3.577 0 7.285-.602 11.128-1.807 3.842-1.204 7.693-3.416 11.554-6.64l-5.154-6.586c-2.62 2.479-5.523 4.276-8.71 5.392-3.187 1.114-6.215 1.673-9.084 1.673-5.17 0-9.588-1.514-13.253-4.54-3.665-3.03-5.94-6.9-6.826-11.61h45.045v-3.557c0-5.347-1.151-10.094-3.453-14.236-2.302-4.144-5.471-7.401-9.508-9.775-4.038-2.37-8.675-3.559-13.917-3.559zm148.248 0c-5.312 0-10.047 1.194-14.208 3.585-4.162 2.391-7.438 5.667-9.829 9.828-2.389 4.16-3.584 8.897-3.584 14.208 0 5.313 1.195 10.05 3.584 14.21 2.392 4.162 5.667 7.437 9.83 9.828 4.16 2.39 8.895 3.585 14.207 3.585 5.311 0 10.048-1.194 14.21-3.585 4.16-2.391 7.435-5.666 9.826-9.827 2.391-4.161 3.586-8.898 3.586-14.211 0-5.311-1.195-10.047-3.586-14.208-2.39-4.161-5.666-7.437-9.827-9.828-4.16-2.391-8.898-3.585-14.209-3.585zM485.09 91.464c3.576 0 6.764.85 9.56 2.552 2.799 1.699 5.004 4.029 6.614 6.983 1.612 2.958 2.417 6.332 2.417 10.12 0 3.754-.805 7.118-2.417 10.093-1.61 2.975-3.815 5.311-6.613 7.012-2.797 1.7-5.985 2.549-9.561 2.549-3.577 0-6.765-.85-9.562-2.549-2.798-1.7-5.002-4.037-6.612-7.012-1.613-2.975-2.418-6.339-2.418-10.093 0-3.788.805-7.162 2.418-10.12 1.61-2.954 3.814-5.284 6.612-6.983 2.797-1.701 5.985-2.552 9.562-2.552zm-68.26.001c3.578 0 6.766.85 9.562 2.55 2.798 1.7 5.002 4.029 6.614 6.985 1.61 2.957 2.416 6.331 2.416 10.118 0 3.754-.806 7.118-2.416 10.093-1.612 2.975-3.816 5.313-6.614 7.012-2.796 1.701-5.984 2.55-9.562 2.55-3.577 0-6.764-.849-9.56-2.55-2.798-1.7-5.003-4.037-6.614-7.012-1.611-2.975-2.417-6.339-2.417-10.093 0-3.787.806-7.16 2.417-10.118 1.61-2.956 3.816-5.285 6.614-6.986 2.796-1.699 5.983-2.549 9.56-2.549zm-64.114 0c4.638 0 8.57 1.46 11.792 4.384 3.222 2.922 5.222 6.7 6.002 11.34h-36.015c.78-4.567 2.834-8.33 6.163-11.288 3.328-2.956 7.348-4.435 12.058-4.435zm200.366 0c4.638 0 8.568 1.46 11.79 4.384 3.222 2.922 5.224 6.7 6.003 11.34H534.86c.779-4.567 2.833-8.33 6.162-11.288 3.328-2.956 7.348-4.435 12.059-4.435zm148.3 0c3.576 0 6.766.85 9.562 2.55 2.798 1.701 5.002 4.03 6.614 6.986 1.61 2.956 2.416 6.33 2.416 10.118 0 3.754-.806 7.119-2.416 10.094-1.612 2.974-3.816 5.31-6.614 7.011-2.796 1.7-5.986 2.55-9.562 2.55-3.577 0-6.764-.85-9.56-2.55-2.798-1.7-5.004-4.037-6.614-7.011-1.613-2.975-2.417-6.34-2.417-10.094 0-3.789.804-7.162 2.417-10.118 1.61-2.956 3.816-5.285 6.613-6.986 2.797-1.7 5.984-2.55 9.561-2.55z" fill-rule="nonzero"/><path d="M187.345 108.66l9.992-9.992-9.992-9.992 7.517-11.963-11.964-7.518 4.667-13.337-13.336-4.667 1.581-14.04-14.04-1.583-1.583-14.042-14.04 1.582-4.668-13.337-13.336 4.666-7.52-11.963L108.66 9.99 98.67 0l-9.992 9.992-11.964-7.517-7.517 11.963L55.86 9.771l-4.667 13.337-14.041-1.583-1.582 14.041-14.04 1.582 1.581 14.04-13.338 4.668 4.667 13.337L2.475 76.71l7.518 11.966L0 98.668l9.992 9.993-7.517 11.964 11.964 7.517-4.667 13.337 13.338 4.668-1.582 14.039 14.04 1.583 1.583 14.04 14.041-1.581 4.667 13.335 13.336-4.665 7.518 11.964 11.963-7.518 9.992 9.899 9.992-9.896 11.964 7.517 7.517-11.966 13.338 4.668 4.666-13.337 14.042 1.581 1.581-14.041 14.042-1.582-1.583-14.04 13.338-4.668-4.667-13.338 11.964-7.517z" fill="#b51f08" fill-rule="nonzero"/><path d="M167.114 114.463c0-19.312-15.655-34.967-34.967-34.967-9.592 0-18.282 3.865-24.599 10.121l-.004-.004-8.909 8.91-7.285-7.285c-6.409-7.312-15.81-11.934-26.296-11.934-19.313 0-34.968 15.655-34.968 34.967 0 10.092 4.28 19.178 11.117 25.56l57.466 57.435 56.196-56.233c7.022-6.608 12.25-15.934 12.25-26.57" fill="#fdd49a" fill-rule="nonzero"/><path d="M98.635 98.522l-7.285-7.284c-6.41-7.312-15.81-11.935-26.297-11.935-19.312 0-34.967 15.656-34.967 34.967 0 10.092 4.28 19.178 11.117 25.56l57.466 57.436" fill="url(#_Linear1)" fill-rule="nonzero"/><path d="M98.669 197.266l-.034-98.744" fill="none"/><path d="M108.65 187.336a14.075 14.075 0 00-10.001-4.157 14.075 14.075 0 00-10.002 4.157c.04 5.49 4.502 9.927 10.001 9.927 5.5 0 9.962-4.439 10.003-9.927M86.967 126.87a7.643 7.643 0 11-15.287 0 7.643 7.643 0 1115.287 0" fill="#010007" fill-rule="nonzero"/><path d="M84.345 125.724a2.116 2.116 0 01-2.118 2.117 2.117 2.117 0 110-4.236 2.12 2.12 0 012.118 2.12" fill="#fffffa" fill-rule="nonzero"/><path d="M125.732 126.87a7.644 7.644 0 11-15.288 0 7.644 7.644 0 1115.288 0" fill="#010007" fill-rule="nonzero"/><path d="M123.11 125.724c0 1.172-.95 2.117-2.118 2.117a2.117 2.117 0 110-4.236 2.12 2.12 0 012.118 2.12" fill="#fffffa" fill-rule="nonzero"/><defs id="defs77"><linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-64.537 160.23 25.078) scale(61.7694)"><stop offset="0" id="stop72" stop-color="#fdd49a" stop-opacity="1"/><stop offset="1" id="stop74" stop-color="#dca055" stop-opacity="1"/></linearGradient></defs></svg>
\ No newline at end of file diff --git a/docs/content/images/hedgedoc_logo_white.svg b/docs/content/images/hedgedoc_logo_white.svg new file mode 100644 index 00000000..6a6fa39a --- /dev/null +++ b/docs/content/images/hedgedoc_logo_white.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="786" height="197.266" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M248.07 58v79.68h9.297v-35.058h45.416v35.058h9.296V58h-9.296v36.123h-45.416V58zm187.351 0v33.518c-2.372-2.513-5.223-4.478-8.552-5.895-3.33-1.417-6.941-2.125-10.836-2.125-5.134 0-9.73 1.193-13.785 3.584-4.054 2.392-7.243 5.667-9.56 9.828-2.321 4.163-3.48 8.897-3.48 14.208 0 5.314 1.159 10.051 3.48 14.21 2.317 4.161 5.506 7.437 9.56 9.828 4.055 2.391 8.65 3.587 13.785 3.587 4.001 0 7.702-.753 11.102-2.258 3.4-1.506 6.285-3.568 8.659-6.19l.479 7.385h7.913V58zm157.87.106v79.68h21.673c15.653 0 27.676-3.488 36.068-10.466 8.392-6.974 12.59-16.803 12.59-29.48 0-12.642-4.198-22.425-12.59-29.348-8.392-6.923-20.415-10.386-36.068-10.386zm9.296 8.5h12.377c12.606 0 22.275 2.719 29.004 8.153 6.728 5.438 10.091 13.13 10.091 23.082 0 9.985-3.363 17.724-10.09 23.212-6.73 5.49-16.399 8.234-29.005 8.234h-12.377zm-118.295 16.89c-5.134 0-9.73 1.196-13.784 3.587-4.055 2.391-7.244 5.666-9.562 9.827-2.32 4.161-3.48 8.897-3.48 14.21 0 5.312 1.16 10.048 3.48 14.21 2.318 4.16 5.507 7.435 9.562 9.826 4.054 2.391 8.65 3.586 13.784 3.586 3.895 0 7.507-.709 10.837-2.125 3.328-1.416 6.179-3.38 8.551-5.895v2.76c0 7.225-1.815 13.005-5.444 17.345-3.632 4.336-9.216 6.505-16.759 6.505-2.975 0-5.737-.487-8.286-1.46-2.55-.975-4.818-2.329-6.8-4.063l-4.355 7.33c2.619 1.948 5.558 3.46 8.816 4.541 3.258 1.082 6.745 1.62 10.465 1.62 6.763 0 12.457-1.373 17.08-4.116 4.62-2.745 8.116-6.578 10.49-11.5 2.372-4.923 3.558-10.66 3.558-17.211V84.559h-7.915l-.479 7.385c-2.372-2.621-5.258-4.684-8.658-6.19-3.399-1.505-7.1-2.257-11.1-2.257zm281.895 0c-5.312 0-10.049 1.196-14.21 3.587-4.16 2.39-7.436 5.666-9.828 9.828-2.389 4.161-3.584 8.896-3.584 14.208 0 5.313 1.195 10.05 3.584 14.21 2.392 4.162 5.667 7.437 9.828 9.826 4.161 2.391 8.898 3.587 14.21 3.587 4.001 0 7.683-.69 11.048-2.072 3.364-1.382 6.286-3.311 8.765-5.79l-6.11-6.056c-1.665 1.842-3.665 3.293-6.001 4.355-2.338 1.063-4.905 1.595-7.702 1.595-3.577 0-6.765-.85-9.562-2.551-2.798-1.7-5.003-4.037-6.614-7.01-1.611-2.975-2.416-6.34-2.416-10.094 0-3.788.805-7.162 2.416-10.12 1.61-2.956 3.816-5.284 6.614-6.983 2.797-1.701 5.985-2.55 9.562-2.55 2.797 0 5.364.522 7.702 1.565a17.433 17.433 0 0 1 6.001 4.384l6.11-6.11c-2.479-2.442-5.4-4.355-8.765-5.736-3.365-1.382-7.047-2.072-11.048-2.072zm-413.42.002c-5.24 0-9.932 1.188-14.076 3.56-4.144 2.373-7.402 5.623-9.774 9.748-2.372 4.125-3.56 8.808-3.56 14.05 0 5.384 1.267 10.18 3.8 14.395 2.53 4.214 6.027 7.516 10.49 9.907 4.462 2.39 15.298 3.585 15.298 3.585 3.577 0 7.286-.602 11.13-1.807 3.841-1.204 7.692-3.416 11.552-6.64l-5.152-6.586c-2.622 2.479-5.525 4.276-8.71 5.392-3.19 1.114-6.216 1.673-9.086 1.673-5.17 0-9.588-1.514-13.253-4.54-3.665-3.03-5.94-6.9-6.825-11.61h45.045v-3.557c0-5.347-1.152-10.094-3.454-14.236-2.302-4.144-5.47-7.401-9.507-9.775-4.038-2.37-8.676-3.559-13.918-3.559zm200.366 0c-5.241 0-9.933 1.188-14.076 3.56-4.144 2.373-7.402 5.623-9.774 9.748-2.373 4.125-3.56 8.808-3.56 14.05 0 5.384 1.265 10.18 3.799 14.395 2.53 4.214 6.029 7.516 10.49 9.907 4.462 2.39 9.562 3.585 15.299 3.585 3.577 0 7.285-.602 11.128-1.807 3.842-1.204 7.693-3.416 11.554-6.64l-5.154-6.586c-2.62 2.479-5.523 4.276-8.71 5.392-3.187 1.114-6.215 1.673-9.084 1.673-5.17 0-9.588-1.514-13.253-4.54-3.665-3.03-5.94-6.9-6.826-11.61h45.045v-3.557c0-5.347-1.151-10.094-3.453-14.236-2.302-4.144-5.471-7.401-9.508-9.775-4.038-2.37-8.675-3.559-13.917-3.559zm148.248 0c-5.312 0-10.047 1.194-14.208 3.585-4.162 2.391-7.438 5.667-9.829 9.828-2.389 4.16-3.584 8.897-3.584 14.208 0 5.313 1.195 10.05 3.584 14.21 2.392 4.162 5.667 7.437 9.83 9.828 4.16 2.39 8.895 3.585 14.207 3.585 5.311 0 10.048-1.194 14.21-3.585 4.16-2.391 7.435-5.666 9.826-9.827 2.391-4.161 3.586-8.898 3.586-14.211 0-5.311-1.195-10.047-3.586-14.208-2.39-4.161-5.666-7.437-9.827-9.828-4.16-2.391-8.898-3.585-14.209-3.585zM485.09 91.464c3.576 0 6.764.85 9.56 2.552 2.799 1.699 5.004 4.029 6.614 6.983 1.612 2.958 2.417 6.332 2.417 10.12 0 3.754-.805 7.118-2.417 10.093-1.61 2.975-3.815 5.311-6.613 7.012-2.797 1.7-5.985 2.549-9.561 2.549-3.577 0-6.765-.85-9.562-2.549-2.798-1.7-5.002-4.037-6.612-7.012-1.613-2.975-2.418-6.339-2.418-10.093 0-3.788.805-7.162 2.418-10.12 1.61-2.954 3.814-5.284 6.612-6.983 2.797-1.701 5.985-2.552 9.562-2.552zm-68.26.001c3.578 0 6.766.85 9.562 2.55 2.798 1.7 5.002 4.029 6.614 6.985 1.61 2.957 2.416 6.331 2.416 10.118 0 3.754-.806 7.118-2.416 10.093-1.612 2.975-3.816 5.313-6.614 7.012-2.796 1.701-5.984 2.55-9.562 2.55-3.577 0-6.764-.849-9.56-2.55-2.798-1.7-5.003-4.037-6.614-7.012-1.611-2.975-2.417-6.339-2.417-10.093 0-3.787.806-7.16 2.417-10.118 1.61-2.956 3.816-5.285 6.614-6.986 2.796-1.699 5.983-2.549 9.56-2.549zm-64.114 0c4.638 0 8.57 1.46 11.792 4.384 3.222 2.922 5.222 6.7 6.002 11.34h-36.015c.78-4.567 2.834-8.33 6.163-11.288 3.328-2.956 7.348-4.435 12.058-4.435zm200.366 0c4.638 0 8.568 1.46 11.79 4.384 3.222 2.922 5.224 6.7 6.003 11.34H534.86c.779-4.567 2.833-8.33 6.162-11.288 3.328-2.956 7.348-4.435 12.059-4.435zm148.3 0c3.576 0 6.766.85 9.562 2.55 2.798 1.701 5.002 4.03 6.614 6.986 1.61 2.956 2.416 6.33 2.416 10.118 0 3.754-.806 7.119-2.416 10.094-1.612 2.974-3.816 5.31-6.614 7.011-2.796 1.7-5.986 2.55-9.562 2.55-3.577 0-6.764-.85-9.56-2.55-2.798-1.7-5.004-4.037-6.614-7.011-1.613-2.975-2.417-6.34-2.417-10.094 0-3.789.804-7.162 2.417-10.118 1.61-2.956 3.816-5.285 6.613-6.986 2.797-1.7 5.984-2.55 9.561-2.55z" fill-rule="nonzero" style="fill:#cfcac9;fill-opacity:1"/><path d="m187.345 108.66 9.992-9.992-9.992-9.992 7.517-11.963-11.964-7.518 4.667-13.337-13.336-4.667 1.581-14.04-14.04-1.583-1.583-14.042-14.04 1.582-4.668-13.337-13.336 4.666-7.52-11.963L108.66 9.99 98.67 0l-9.992 9.992-11.964-7.517-7.517 11.963L55.86 9.771l-4.667 13.337-14.041-1.583-1.582 14.041-14.04 1.582 1.581 14.04-13.338 4.668 4.667 13.337L2.475 76.71l7.518 11.966L0 98.668l9.992 9.993-7.517 11.964 11.964 7.517-4.667 13.337 13.338 4.668-1.582 14.039 14.04 1.583 1.583 14.04 14.041-1.581 4.667 13.335 13.336-4.665 7.518 11.964 11.963-7.518 9.992 9.899 9.992-9.896 11.964 7.517 7.517-11.966 13.338 4.668 4.666-13.337 14.042 1.581 1.581-14.041 14.042-1.582-1.583-14.04 13.338-4.668-4.667-13.338 11.964-7.517z" fill="#b51f08" fill-rule="nonzero"/><path d="M167.114 114.463c0-19.312-15.655-34.967-34.967-34.967-9.592 0-18.282 3.865-24.599 10.121l-.004-.004-8.909 8.91-7.285-7.285c-6.409-7.312-15.81-11.934-26.296-11.934-19.313 0-34.968 15.655-34.968 34.967 0 10.092 4.28 19.178 11.117 25.56l57.466 57.435 56.196-56.233c7.022-6.608 12.25-15.934 12.25-26.57" fill="#fdd49a" fill-rule="nonzero"/><path d="m98.635 98.522-7.285-7.284c-6.41-7.312-15.81-11.935-26.297-11.935-19.312 0-34.967 15.656-34.967 34.967 0 10.092 4.28 19.178 11.117 25.56l57.466 57.436" fill="url(#a)" fill-rule="nonzero"/><path d="m98.669 197.266-.034-98.744" fill="none"/><path d="M108.65 187.336a14.075 14.075 0 0 0-10.001-4.157 14.075 14.075 0 0 0-10.002 4.157c.04 5.49 4.502 9.927 10.001 9.927 5.5 0 9.962-4.439 10.003-9.927M86.967 126.87a7.643 7.643 0 1 1-15.287 0 7.643 7.643 0 1 1 15.287 0" fill="#010007" fill-rule="nonzero"/><path d="M84.345 125.724a2.116 2.116 0 0 1-2.118 2.117 2.117 2.117 0 1 1 0-4.236 2.12 2.12 0 0 1 2.118 2.12" fill="#fffffa" fill-rule="nonzero"/><path d="M125.732 126.87a7.644 7.644 0 1 1-15.288 0 7.644 7.644 0 1 1 15.288 0" fill="#010007" fill-rule="nonzero"/><path d="M123.11 125.724c0 1.172-.95 2.117-2.118 2.117a2.117 2.117 0 1 1 0-4.236 2.12 2.12 0 0 1 2.118 2.12" fill="#fffffa" fill-rule="nonzero"/><defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-64.537 160.23 25.078) scale(61.7694)"><stop offset="0" stop-color="#fdd49a"/><stop offset="1" stop-color="#dca055"/></linearGradient></defs></svg>
\ No newline at end of file diff --git a/docs/content/images/logo.svg b/docs/content/images/logo.svg index 8e4071ea..c2b5ef43 100644 --- a/docs/content/images/logo.svg +++ b/docs/content/images/logo.svg @@ -1 +1 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="1564" height="1564" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" d="M781.965 0l-79.182 79.19-94.818-59.575-59.574 94.81-105.7-36.99-36.982 105.7-111.283-12.54-12.535 111.276-111.278 12.535 12.541 111.278-105.71 36.988 36.984 105.695-94.815 59.574 59.582 94.832L0 781.961l79.19 79.2-59.577 94.823 94.815 59.573-36.985 105.695 105.707 36.99-12.537 111.264 111.278 12.543 12.535 111.275 111.283-12.535 36.982 105.686 105.694-36.97 59.582 94.821 94.9-59.64 79.096 78.36 79.1-78.343 94.908 59.631 59.572-94.824 105.707 36.988 36.98-105.697 111.284 12.533 12.533-111.283 111.285-12.533-12.543-111.276 105.705-36.99-36.988-105.705 94.814-59.574-59.574-94.813 79.19-79.2-79.188-79.18 59.572-94.813-94.814-59.578 36.99-105.703-105.7-36.983 12.534-111.281-111.275-12.535-12.543-111.283-111.274 12.535-36.99-105.703-105.69 36.986-59.591-94.815-94.82 59.579zm0 77.785l71.305 71.307 85.394-53.656 53.666 85.384 95.172-33.302 33.31 95.185 100.206-11.289 11.296 100.217 100.205 11.289-11.287 100.213 95.182 33.3-33.309 95.188 85.385 53.654-53.648 85.381 71.312 71.309-71.31 71.318 11.666 18.569 41.978 66.812-85.383 53.647 33.311 95.193-95.195 33.31 11.297 100.205-100.215 11.288-11.287 100.216-100.215-11.287-33.301 95.182-95.193-33.31-53.649 85.394-85.289-53.588-18.094 17.922a106.956 106.956 0 0121.871 16.893c-.309 41.33-33.914 74.76-75.33 74.76-41.417 0-75.016-33.42-75.324-74.76a106.994 106.994 0 0122.069-17.01l-17.997-17.828-85.293 53.601-53.65-85.38-95.18 33.29-33.302-95.175-100.217 11.287-11.287-100.205-100.21-11.297 11.29-100.197-95.194-33.311 33.307-95.184-85.385-53.646 53.649-85.39-71.31-71.32 71.32-71.312-53.659-85.4 85.385-53.65-33.305-95.18 95.198-33.313-11.293-100.205 100.207-11.289 11.289-100.207 100.215 11.293 33.302-95.183 95.184 33.308 53.648-85.38 85.391 53.65z" color="#000" font-weight="400" font-family="sans-serif" clip-rule="nonzero" overflow="visible" fill="#fff" fill-rule="nonzero"/><path d="M528.81 636.127c-145.441 0-263.341 117.905-263.341 263.342 0 76 32.23 144.43 83.72 192.49l357.635 357.443c19.257-19.156 45.746-30.984 74.996-30.984 29.295 0 55.839 11.871 75.1 31.09l348.266-348.49c52.88-49.77 92.25-120 92.25-200.1 0-145.437-117.9-263.34-263.34-263.34-72.24 0-137.68 29.112-185.252 76.225l-.033-.035-67.096 67.101-54.863-54.863c-48.267-55.067-119.07-89.88-198.041-89.88zm107.461 300.662c31.804 0 57.57 25.77 57.57 57.57s-25.766 57.569-57.57 57.569c-31.787 0-57.558-25.769-57.558-57.569 0-31.8 25.771-57.57 57.558-57.57zm291.944 0c31.8 0 57.57 25.77 57.57 57.57s-25.77 57.569-57.57 57.569c-31.79 0-57.567-25.769-57.567-57.569 0-31.8 25.777-57.57 57.567-57.57zm-146.27 587.695l.024.023.023-.023h-.047z" fill="#fff" fill-rule="nonzero"/><path d="M674.097 985.728c0 8.82-7.146 15.94-15.95 15.94-8.808 0-15.958-7.12-15.958-15.94 0-8.81 7.15-15.96 15.958-15.96 8.804 0 15.95 7.15 15.95 15.96m291.938 0c0 8.82-7.15 15.94-15.95 15.94-8.81 0-15.96-7.12-15.96-15.94 0-8.81 7.15-15.96 15.96-15.96 8.8 0 15.95 7.15 15.95 15.96" fill="#fffffa" fill-rule="nonzero"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" width="1564" height="1564" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" d="m781.965 0-79.182 79.19-94.818-59.575-59.574 94.81-105.7-36.99-36.982 105.7-111.283-12.54-12.535 111.276-111.278 12.535 12.541 111.278-105.71 36.988 36.984 105.695-94.815 59.574 59.582 94.832L0 781.961l79.19 79.2-59.577 94.823 94.815 59.573-36.985 105.695 105.707 36.99-12.537 111.264 111.278 12.543 12.535 111.275 111.283-12.535 36.982 105.686 105.694-36.97 59.582 94.821 94.9-59.64 79.096 78.36 79.1-78.343 94.908 59.631 59.572-94.824 105.707 36.988 36.98-105.697 111.284 12.533 12.533-111.283 111.285-12.533-12.543-111.276 105.705-36.99-36.988-105.705 94.814-59.574-59.574-94.813 79.19-79.2-79.188-79.18 59.572-94.813-94.814-59.578 36.99-105.703-105.7-36.983 12.534-111.281-111.275-12.535-12.543-111.283-111.274 12.535-36.99-105.703-105.69 36.986-59.591-94.815-94.82 59.579zm0 77.785 71.305 71.307 85.394-53.656 53.666 85.384 95.172-33.302 33.31 95.185 100.206-11.289 11.296 100.217 100.205 11.289-11.287 100.213 95.182 33.3-33.309 95.188 85.385 53.654-53.648 85.381 71.312 71.309-71.31 71.318 11.666 18.569 41.978 66.812-85.383 53.647 33.311 95.193-95.195 33.31 11.297 100.205-100.215 11.288-11.287 100.216-100.215-11.287-33.301 95.182-95.193-33.31-53.649 85.394-85.289-53.588-18.094 17.922a106.956 106.956 0 0 1 21.871 16.893c-.309 41.33-33.914 74.76-75.33 74.76-41.417 0-75.016-33.42-75.324-74.76a106.994 106.994 0 0 1 22.069-17.01l-17.997-17.828-85.293 53.601-53.65-85.38-95.18 33.29-33.302-95.175-100.217 11.287-11.287-100.205-100.21-11.297 11.29-100.197-95.194-33.311 33.307-95.184-85.385-53.646 53.649-85.39-71.31-71.32 71.32-71.312-53.659-85.4 85.385-53.65-33.305-95.18 95.198-33.313-11.293-100.205 100.207-11.289 11.289-100.207 100.215 11.293 33.302-95.183 95.184 33.308 53.648-85.38 85.391 53.65z" color="#000" font-weight="400" font-family="sans-serif" clip-rule="nonzero" overflow="visible" fill="#fff" fill-rule="nonzero"/><path d="M528.81 636.127c-145.441 0-263.341 117.905-263.341 263.342 0 76 32.23 144.43 83.72 192.49l357.635 357.443c19.257-19.156 45.746-30.984 74.996-30.984 29.295 0 55.839 11.871 75.1 31.09l348.266-348.49c52.88-49.77 92.25-120 92.25-200.1 0-145.437-117.9-263.34-263.34-263.34-72.24 0-137.68 29.112-185.252 76.225l-.033-.035-67.096 67.101-54.863-54.863c-48.267-55.067-119.07-89.88-198.041-89.88zm107.461 300.662c31.804 0 57.57 25.77 57.57 57.57s-25.766 57.569-57.57 57.569c-31.787 0-57.558-25.769-57.558-57.569 0-31.8 25.771-57.57 57.558-57.57zm291.944 0c31.8 0 57.57 25.77 57.57 57.57s-25.77 57.569-57.57 57.569c-31.79 0-57.567-25.769-57.567-57.569 0-31.8 25.777-57.57 57.567-57.57zm-146.27 587.695.024.023.023-.023h-.047z" fill="#fff" fill-rule="nonzero"/><path d="M674.097 985.728c0 8.82-7.146 15.94-15.95 15.94-8.808 0-15.958-7.12-15.958-15.94 0-8.81 7.15-15.96 15.958-15.96 8.804 0 15.95 7.15 15.95 15.96m291.938 0c0 8.82-7.15 15.94-15.95 15.94-8.81 0-15.96-7.12-15.96-15.94 0-8.81 7.15-15.96 15.96-15.96 8.8 0 15.95 7.15 15.95 15.96" fill="#fffffa" fill-rule="nonzero"/></svg>
\ No newline at end of file diff --git a/docs/content/index.md b/docs/content/index.md index df961b02..d2ab656c 100644 --- a/docs/content/index.md +++ b/docs/content/index.md @@ -1,6 +1,7 @@  # Welcome to the HedgeDoc Documentation - +<img alt="HedgeDoc Logo" title="HedgeDoc Logo" class="light-mode-only" src="images/hedgedoc_logo_black.svg"> +<img alt="HedgeDoc Logo" title="HedgeDoc Logo" class="dark-mode-only" src="images/hedgedoc_logo_white.svg">  HedgeDoc lets you create real-time collaborative markdown notes. You can test-drive  it by visiting our [HedgeDoc demo server][hedgedoc-demo]. diff --git a/docs/content/references/hfm.md b/docs/content/references/hfm.md new file mode 100644 index 00000000..14edb2e4 --- /dev/null +++ b/docs/content/references/hfm.md @@ -0,0 +1,116 @@ +# HedgeDoc Flavored Markdown + +HedgeDoc mostly follows the [CommonMark][commonmark] standard. It shares some extensions with the [GFM][gfm] standard, but for historical reasons HedgeDoc does support not exactly GFM, but a bit more in places (and a bit less in other places). + +These tables will tell you what exactly we support in HedgeDoc 1.x (HFM 1) and will support in HedgeDoc 2 (HFM 2). + +**Please keep in mind that HedgeDoc 2 is still in development and not functional yet.** + + +## Typography + + +| Feature       | HFM 1 | HFM 2 | CommonMark          | GFM               | +|---------------|:-----:|:-----:|:-------------------:|:-----------------:| +| bold          | :ballot_box_with_check: | :ballot_box_with_check:     | :ballot_box_with_check:                   | :ballot_box_with_check:                 | +| italic        | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:                   | :ballot_box_with_check:                 | +| underline     | :ballot_box_with_check:     | :ballot_box_with_check:     | (:ballot_box_with_check: with `<ins>`)    | (:ballot_box_with_check: with `<ins>`)  | +| strikethrough | :ballot_box_with_check:     | :ballot_box_with_check:     | (:ballot_box_with_check: with `<del>`)    | :ballot_box_with_check:                 | +| subscript     | :ballot_box_with_check:     | :ballot_box_with_check:     | (:ballot_box_with_check: with `<sub>`)    | (:ballot_box_with_check: with `<sub>`)  | +| superscript   | :ballot_box_with_check:     | :ballot_box_with_check:     | (:ballot_box_with_check: with `<sup>`)    | (:ballot_box_with_check: with `<sup>`)  | +| marked        | :ballot_box_with_check:     | :ballot_box_with_check:     | (:ballot_box_with_check: with `<mark>`)   | (:ballot_box_with_check: with `<mark>`) | + +## Extended typography features + +| Feature                        | HFM 1 | HFM 2 | CommonMark | GFM | +|--------------------------------|:-----:|:-----:|:----------:|:---:| +| heading                        | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| inline code                    | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| indented code blocks           | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| code block with language[^highlight]       | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| code block with extra features[^extra-code] | :ballot_box_with_check:     | :ballot_box_with_check:     |            |     | +| block quote                    | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| name tag (`[name=...]`)        | (:ballot_box_with_check:)[^in-bq-list]     | :ballot_box_with_check:     |            |     | +| time tag (`[time=...]`)        | (:ballot_box_with_check:)[^in-bq-list]     | :ballot_box_with_check:     |            |     | +| color tag (`[color=...]`)      | (:ballot_box_with_check:)[^in-bq-list]     | :ballot_box_with_check:     |            |     | +| unorderd list                  | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| ordered list                   | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:          | :ballot_box_with_check:   | +| task list                      | :ballot_box_with_check:     | :ballot_box_with_check:     |            | :ballot_box_with_check:   | +| defition list                  | :ballot_box_with_check:     | :ballot_box_with_check:     |            |     | +| emoji             | [Unicode 6.1][unicode-6] | [Unicode 13][unicode-13] |                      |                      | +| [ForkAwesome][fa] | :ballot_box_with_check: with `<i class='fa'>`  | :ballot_box_with_check: with shortcodes        |                      |                      | +| LaTeX             | :ballot_box_with_check:[^mj]                   | :ballot_box_with_check:[^kt]                   |                      |                      | + +[^highlight]: Code-blocks with a given language are rendered with syntax-highlighting for the code. +[^extra-code]: Several special "language" keywords can be used for rendering diagrams, charts, etc. +[^in-bq-list]: Use of these tags is only supported within blockquotes or (un)ordered lists. +[^mj]: LaTeX is rendered with [MathJax][mathjax]. +[^kt]: LaTeX is rendered with [KaTeX][katex]. + +## Links & Images + +| Feature               | HFM 1 | HFM 2 | CommonMark       | GFM              | +|-----------------------|:-----:|:-----:|:----------------:|:----------------:| +| link                  | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:                | :ballot_box_with_check:                | +| link reference        | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:                | :ballot_box_with_check:                | +| link title            | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:                | :ballot_box_with_check:                | +| autolink with `<>`    | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:                | :ballot_box_with_check:                | +| autolink without `<>` | :ballot_box_with_check:     | :ballot_box_with_check:     |                  | :ballot_box_with_check:                | +| footnotes             | :ballot_box_with_check:     | :ballot_box_with_check:     |                  |                  | +| image                 | :ballot_box_with_check:     | :ballot_box_with_check:     | :ballot_box_with_check:                | :ballot_box_with_check:                | +| image with given size | :ballot_box_with_check:     | :ballot_box_with_check:     | (:ballot_box_with_check: with `<img>`) | (:ballot_box_with_check: with `<img>`) | +| table of contents     | :ballot_box_with_check:     | :ballot_box_with_check:     |                  |                  | + + +## Structural elements + +| Feature           | HFM 1                    | HFM 2                    | CommonMark           | GFM                  | +|-------------------|:------------------------:|:------------------------:|:--------------------:|:--------------------:| +| table             | :ballot_box_with_check:                        | :ballot_box_with_check:                        | (:ballot_box_with_check: with `<table>`)   | :ballot_box_with_check:                    | +| horizontal line   | :ballot_box_with_check:                        | :ballot_box_with_check:                        | :ballot_box_with_check:                    | :ballot_box_with_check:                    | +| collapsable block | (:ballot_box_with_check: with `<details>`)     | :ballot_box_with_check:                        | (:ballot_box_with_check: with `<details>`) | (:ballot_box_with_check: with `<details>`) | +| Alerts            | :ballot_box_with_check:                        | :ballot_box_with_check:                        |                      |                      | + +## Embeddings +HFM1 included support for certain embeddings of external content. These were defined in markdown by the uncommon `{%keyword parameter %}` syntax. + +Instead of this uncommon syntax, HFM2 uses just plain links to external content and creates embeddings for supported providers. + +| Feature                  | HFM 1 | HFM 2              | CommonMark | GFM | +|--------------------------|:-----:|:------------------:|:----------:|:---:| +| PDF (`{%pdf ... %}`)     | :ballot_box_with_check:     | removed            |            |     | +| [YouTube][youtube] (`{%youtube ... %}`)       | :ballot_box_with_check:     | with plain link[^embed] |            |     | +| [Vimeo][vimeo] (`{%vimeo ... %}`)          | :ballot_box_with_check:     | with plain link[^embed] |            |     | +| [Slideshare][slideshare] (`{%slideshare ... %}`) | :ballot_box_with_check:     | removed            |            |     | +| [Speakerdeck][speakerdeck] (`{%speakerdeck ... %}`) | :ballot_box_with_check:     | removed            |            |     | +| [GitHub Gist][gist] (`{%gist ... %}`)             | :ballot_box_with_check:     | with plain link[^embed] |            |     | + +[^embed]: The special syntax is deprecated but will continue to work. However a plain link to the content will generate the same embedding and is preferred. + +## HTML +Besides the basic HTML typography elements (`<p>`, `<a>`, `<b>`, `<ins>`, `<del>`) the following more special HTML elements are supported by some specification. + +|    Feature    | HedgeDocMark 1 | HedgeDocMark 2 | CommonMark | GFM | +|:-------------:|:--------------:|:--------------:|:----------:|:---:| +|   `<title>`   |                |                | :ballot_box_with_check:          |     | +|  `<textarea>` |                | :ballot_box_with_check:              | :ballot_box_with_check:          |     | +|   `<style>`   | :ballot_box_with_check:              | :ballot_box_with_check:              | :ballot_box_with_check:          |     | +|    `<xmp>`    |                |                | :ballot_box_with_check:          |     | +|   `<iframe>`  | :ballot_box_with_check:              | :ballot_box_with_check:              | :ballot_box_with_check:          |     | +|  `<noembed>`  | :ballot_box_with_check:              |                | :ballot_box_with_check:          |     | +|  `<noframes>` | :ballot_box_with_check:              |                | :ballot_box_with_check:          |     | +|   `<script>`  |                |                | :ballot_box_with_check:          |     | +| `<plaintext>` |                | :ballot_box_with_check:              | :ballot_box_with_check:          |     | + +[fa]: https://forkaweso.me/ +[youtube]: https://www.youtube.com/ +[vimeo]: https://vimeo.com/ +[slideshare]: https://www.slideshare.net/ +[speakerdeck]: https://speakerdeck.com/ +[gist]: https://gist.github.com/ +[mathjax]: https://www.mathjax.org/ +[katex]: https://katex.org/ +[gfm]: https://github.github.com/gfm/ +[commonmark]: https://spec.commonmark.org/ +[unicode-6]: https://unicode.org/versions/Unicode6.1.0/ +[unicode-13]: https://unicode.org/versions/Unicode13.0.0/ diff --git a/docs/content/setup/docker.md b/docs/content/setup/docker.md index f6aeb833..11ff9b02 100644 --- a/docs/content/setup/docker.md +++ b/docs/content/setup/docker.md @@ -1,20 +1,93 @@  # HedgeDoc Docker Image -[](http://play-with-docker.com?stack=https://github.com/hedgedoc/container/raw/master/docker-compose.yml&stack_name=hedgedoc) +!!! info "Requirements on your server" +    - [Git](https://git-scm.com/) +    - [Docker](https://docs.docker.com/get-docker/) 17.03.1 or higher +    - [Docker Compose](https://docs.docker.com/compose/install/) -## Debian-based version +The official docker images are [available on quay.io](https://quay.io/repository/hedgedoc/hedgedoc). +We currently only support the `amd64` architecture. -[](https://quay.io/repository/hedgedoc/hedgedoc) -## Alpine-based version +The easiest way to get started with HedgeDoc and Docker is to use the following `docker-compose.yml`: -[](https://quay.io/repository/hedgedoc/hedgedoc) +!!! warning +    This is a minimal example to get started quickly and not intended for production use. -The easiest way to setup HedgeDoc using docker are using the following three commands: +```yaml +version: '3' +services: +  database: +    image: postgres:9.6-alpine +    environment: +      - POSTGRES_USER=hedgedoc +      - POSTGRES_PASSWORD=password +      - POSTGRES_DB=hedgedoc +    volumes: +      - database:/var/lib/postgresql/data +    restart: always +  app: +    # Make sure to use the latest release from https://hedgedoc.org/latest-release +    image: quay.io/hedgedoc/hedgedoc:1.7.2 +    environment: +      - CMD_DB_URL=postgres://hedgedoc:password@database:5432/hedgedoc +      - CMD_DOMAIN=localhost +      - CMD_URL_ADDPORT=true +    volumes: +      - uploads:/hedgedoc/public/uploads +    ports: +      - "3000:3000" +    restart: always +    depends_on: +      - database +volumes: +  database: +  uploads: +``` +After executing `docker-compose up`, HedgeDoc should be available at [http://127.0.0.1:3000](http://127.0.0.1:3000).   +You can now continue to configure your container with environment variables. +Check out [the configuration docs](/configuration) for more details. + +## Upgrading + +!!! warning +    Before you upgrade, **always read the release notes**.   +    You can find them on our [releases page](https://hedgedoc.org/releases/). + +!!! info "Upgrading to 1.7" +    Together with changing the name to "HedgeDoc" the default username, +    password and database name have been changed in `docker-compose.yml`. + +    In order to migrate the existing database to the new default credentials, run +    ```shell +    docker-compose exec database createuser --superuser -Uhackmd postgres +    docker-compose exec database psql -Upostgres -c "alter role hackmd rename to hedgedoc; alter role hedgedoc with password 'password'; alter database hackmd rename to hedgedoc;" +    ``` +    before running `docker-compose up`. + +You can upgrade to the latest release by stopping the containers and changing the referenced image version in `docker-compose.yml`.   +Then run `docker-compose up` to start HedgeDoc again.  + +### Migrating from CodiMD & HackMD + +If you currently use CodiMD or HackMD, you should be able to swap the docker image for ours. +See [the general migration hints](/setup/getting-started/#migrating-from-codimd-hackmd) for compatibility details. + + +## Backup + +If you use a PostgreSQL database, you can leverage this command to create a backup:  + +```shell + docker-compose exec database pg_dump hedgedoc -U hedgedoc > backup.sql +``` + + +## Restore + +If you want to restore your PostgreSQL backup, run these commands before starting the application for the first time: -```sh -git clone https://github.com/hedgedoc/container.git hedgedoc-container -cd hedgedoc-container -docker-compose up +```shell +docker-compose up -d database +cat backup.sql | docker exec -i $(docker-compose ps -q database) psql -U hedgedoc  ``` -Read more about it in the [container repository](https://github.com/hedgedoc/container). diff --git a/docs/content/setup/getting-started.md b/docs/content/setup/getting-started.md index 41426514..2b1f8653 100644 --- a/docs/content/setup/getting-started.md +++ b/docs/content/setup/getting-started.md @@ -6,5 +6,28 @@ To set up your instance follow these steps:  1. Choose an installation method and follow the instructions  2. [Configure your reverse proxy](https://docs.hedgedoc.org/guides/reverse-proxy/)  3. [Configure HedgeDoc](https://docs.hedgedoc.org/configuration/) +4. If you didn't disable [local accounts](/configuration/#email-local-account), you can use the "Sign In" button to +   create an account, login and start using HedgeDoc. -Follow us on <a href="http://social.codimd.org/" target="_blank" rel="noreferer noopener">:fontawesome-brands-mastodon:{: .mastodon }Mastodon</a> or <a href="http://social.codimd.org/twitter" target="_blank" rel="noreferer noopener">:fontawesome-brands-twitter:{: .twitter }Twitter</a> for updates. +Follow us on <a href="https://social.hedgedoc.org/" target="_blank" rel="noreferer noopener">:fontawesome-brands-mastodon:{: .mastodon }Mastodon</a> or <a href="https://social.hedgedoc.org/twitter" target="_blank" rel="noreferer noopener">:fontawesome-brands-twitter:{: .twitter }Twitter</a> for updates. + +## Upgrading HedgeDoc + +HedgeDoc follows [Semantic Versioning](https://semver.org/).   +This means that minor and patch releases should not introduce user-facing backwards-incompatible changes. + +You can find more details about upgrading in the instructions of your installation method. + +!!! warning +    Before you upgrade, **always read the release notes**.   +    You can find them on our [releases page](https://hedgedoc.org/releases/). + +## Migrating from CodiMD & HackMD +Migrating from CodiMD <= 1.6.0 or HackMD <= 1.1.0 to HedgeDoc should be safe, +just make sure to read the release notes.   +A particular issue that has come up is when handling TLS connections using a reverse proxy. +You must [set the `X-Forwarded-Proto` header correctly](https://docs.hedgedoc.org/guides/reverse-proxy/#reverse-proxy-config). + +Migrating from more recent versions of CodiMD is not guaranteed to work, although some community members +[reported success migrating from CodiMD 2.2](https://community.hedgedoc.org/t/solved-upgrade-from-dockerlized-codimd/271). +If you successfully migrated from other versions, please report your upgrade results in the [community forum](https://community.hedgedoc.org/). diff --git a/docs/content/setup/manual-setup.md b/docs/content/setup/manual-setup.md index 4d03b752..64ad57c5 100644 --- a/docs/content/setup/manual-setup.md +++ b/docs/content/setup/manual-setup.md @@ -1,41 +1,141 @@  # Manual Installation -## Requirements on your server - -- Node.js 10.13 or up -- Database (PostgreSQL, MySQL, MariaDB, SQLite, MSSQL)   -  The database must use charset `utf8`. This is typically the default in PostgreSQL and SQLite.   -  In MySQL and MariaDB UTF-8 might need to be set with `alter database <DBNAME> character set utf8 collate utf8_bin;`   -  Be aware of older MySQL and MariaDB versions which sometimes use shorter representations of UTF-8 than 4 bytes. -  This can break if symbols with more bytes are used. -  You can use `alter database <DBNAME> character set utf8mb4 COLLATE utf8mb4_unicode_ci` to be on the safe side. -- NPM (and its dependencies, [node-gyp](https://github.com/nodejs/node-gyp#installation)) -- Yarn -- Bash (for the setup script) -- For **building** the HedgeDoc frontend you need a machine with at least **2 GB** RAM. -    - Starting with release 1.7 the release tarball includes the frontend, so building it yourself is not necessary. - -## Instructions - -1. Check if you meet the [requirements at the top of this document](#requirements-on-your-server). -2. Download a [release](https://github.com/hedgedoc/hedgedoc/releases) tarball and extract it. -   Alternatively, you can use Git to clone the repository and checkout a release, e.g. with `git clone -b 1.7.2 https://github.com/hedgedoc/hedgedoc.git`. -3. Enter the directory and type `bin/setup`, which will install the dependencies and create configs. -4. Modify the file named `config.json` or configure HedgeDoc through environment variables which will overwrite the configs, see docs [here](../configuration.md). -5. **If using the release tarball for 1.7.0 or newer, this step can be skipped.**   -   Build the frontend bundle by `yarn run build` (use `yarn run dev` if you are in development) -6. It is recommended to start your server manually once: `NODE_ENV=production yarn start`, this way it's easier to see warnings or errors that might occur (leave out `NODE_ENV=production` for development). -7. Run the server as you like (node, forever, pm2, SystemD, Init-Scripts) - -## How to upgrade your installation - -If you are upgrading HedgeDoc from an older version, follow these steps: - -1. Check if you meet the [requirements at the top of this document](#requirements-on-your-server). -2. Verify which version you were running before and take a look at [migrations and breaking changes](../guides/migrations-and-breaking-changes.md) to see if additional steps, or configuration changes are necessary! -3. Fully stop your old HedgeDoc server. -4. `git pull` or unzip a new release in the directory. +!!! info "Requirements on your server" +    - Node.js 12 or higher +    - Database (PostgreSQL, MySQL, MariaDB, SQLite, MSSQL)   +      The database must use charset `utf8`. This is typically the default in PostgreSQL and SQLite.   +      In MySQL and MariaDB UTF-8 might need to be set with `alter database <DBNAME> character set utf8 collate utf8_bin;`   +      Be aware of older MySQL and MariaDB versions which sometimes use shorter representations of UTF-8 than 4 bytes. +      This can break if symbols with more bytes are used. +      You can use `alter database <DBNAME> character set utf8mb4 COLLATE utf8mb4_unicode_ci` to be on the safe side. +    - NPM (and its dependencies, [node-gyp](https://github.com/nodejs/node-gyp#installation)) +    - [Yarn Classic](https://classic.yarnpkg.com) 1.22 or higher (Yarn 2 is currently not supported) +    - Bash (for the setup script) +    - For **building** the HedgeDoc frontend you need a machine with at least **2 GB** RAM. +      - Starting with release 1.7 the release tarball includes the prebuilt frontend, so building it yourself is not necessary. + +1. Check if you meet the [requirements at the top of this document](#manual-installation). +2. Download the [latest release](https://hedgedoc.org/latest-release/) and extract it.   +   <small>Alternatively, you can use Git to clone the repository and checkout a release, e.g. with `git clone -b 1.7.2 https://github.com/hedgedoc/hedgedoc.git`.</small> +3. Enter the directory and execute `bin/setup`, which will install the dependencies and create example configs. +4. Configure HedgeDoc: To get started, you can use this minimal `config.json`: +   ```json +   { +     "production": { +       "db": { +         "dialect": "sqlite", +         "storage": "./db.hedgedoc.sqlite" +      }, +       "urlAddPort": true, +       "domain": "localhost" +     } +   } +   ``` +   It's also possible to use environment variables. +   For details, have a look at [the configuration documentation](../configuration.md). +5. *:octicons-light-bulb-16: If you use the release tarball for 1.7.0 or newer, this step can be skipped.*   +   Build the frontend bundle by running `yarn run build`. +6. Modify the file named `.sequelizerc`, change the value of the variable `url` to your db connection string. For example: +  - `postgres://username:password@localhost:5432/hedgedoc` +  - `mysql://username:password@localhost:3306/hedgedoc` +  - `sqlite:///opt/hedgedoc/hedgedoc.sqlite` (note that you need to use an absolute path to the SQLite file) +7. It is recommended to start your server manually once:   +   ```shell +   NODE_ENV=production yarn start +   ``` +   This way it's easier to see warnings or errors that might occur.   +   <small>You can leave out `NODE_ENV=production` for development.</small>   +8. If you use the example config, HedgeDoc should now be available at [http://127.0.0.1:3000](http://127.0.0.1:3000). +9. Run the server as you like (node, forever, pm2, systemd, Init-Scripts).   +   See [below](#systemd-unit-example) for an example using systemd. + +## Upgrading + +!!! warning +    Before you upgrade, **always read the release notes**.   +    You can find them on our [releases page](https://hedgedoc.org/releases/). + +If you want to upgrade HedgeDoc from an older version, follow these steps: + +1. Check if you still meet the [requirements at the top of this document](#requirements-on-your-server). +2. Ensure you read the [release notes](https://hedgedoc.org/releases/) of all versions between your current version +   and the latest release. +2. Fully stop your old HedgeDoc server. +3. [Download](https://hedgedoc.org/latest-release/) the new release and extract it over the old directory.   +   <small>If you use Git, you can check out the new tag with e.g. `git fetch origin && git checkout 1.7.2`</small>  5. Run `bin/setup`. This will take care of installing dependencies. It is safe to run on an existing installation. -6. Build front-end bundle by `yarn run build` (use `yarn run dev` if you are in development). -7. It is recommended to start your server manually once: `NODE_ENV=production yarn start`, this way it's easier to see warnings or errors that might occur (leave out `NODE_ENV=production` for development). +6. *:octicons-light-bulb-16: If you used the release tarball for 1.7.0 or newer, this step can be skipped.*   +   Build the frontend bundle by running `yarn run build`. +7. It is recommended to start your server manually once: +   ```shell +   NODE_ENV=production yarn start +   ``` +   This way it's easier to see warnings or errors that might occur.  8. You can now restart the HedgeDoc server! + +## Systemd Unit Example +Using the unit file below, you can run HedgeDoc as a systemd service. + +!!! warning +    - In this example, you must configure HedgeDoc using the `config.json` file and the  +    `production` key. +    - Make sure the user and group `hedgedoc` exists and has appropriate permissions in the +    directory you installed HedgeDoc in or change the `User` and `Group` settings in the unit +    file. +    - Make sure `WorkingDirectory` points to the directory you installed HedgeDoc in. +    - Make sure `ReadWritePaths` contains all directories HedgeDoc might write to. This may +    include the `public/uploads` folder if you configured local storage. If you use SQLite, you +    must also include the directory where the database file is saved. **Do not save the SQLite +    file in the root directory of the HedgeDoc installation**, but create a subfolder like `db`! +    - If you use an external database like PostgreSQL or MariaDB, make sure to add a corresponding +    `After` statement. + +```ini +[Unit] +Description=HedgeDoc - The best platform to write and share markdown. +Documentation=https://docs.hedgedoc.org/ +After=network.target +# Uncomment if you use MariaDB/MySQL +# After=mysql.service +# Uncomment if you use PostgreSQL +# After=postgresql.service + +[Service] +Type=exec +Environment=NODE_ENV=production +Restart=always +RestartSec=2s +ExecStart=/usr/bin/yarn start --production +CapabilityBoundingSet= +NoNewPrivileges=true +PrivateDevices=true +RemoveIPC=true +LockPersonality=true +ProtectControlGroups=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectKernelLogs=true +ProtectClock=true +ProtectHostname=true +ProtectProc=noaccess +RestrictRealtime=true +RestrictSUIDSGID=true +RestrictNamespaces=true +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +ProtectSystem=strict +ProtectHome=true +PrivateTmp=true +SystemCallArchitectures=native +SystemCallFilter=@system-service + +# You may have to adjust these settings +User=hedgedoc +Group=hedgedoc +WorkingDirectory=/opt/hedgedoc + +# Example: local storage for uploads and SQLite +# ReadWritePaths=/opt/hedgedoc/public/uploads /opt/hedgedoc/db + +[Install] +WantedBy=multi-user.target +``` diff --git a/docs/content/theme/styles/hedgedoc-custom.css b/docs/content/theme/styles/hedgedoc-custom.css index e3c52757..97baeed5 100644 --- a/docs/content/theme/styles/hedgedoc-custom.css +++ b/docs/content/theme/styles/hedgedoc-custom.css @@ -1,9 +1,41 @@ +[data-md-color-scheme="slate"][data-md-color-primary=hedgedoc] { +  --md-hue: 8; +  --md-default-fg-color: hsla(var(--md-hue), 20%, 80%, 1); +  --md-default-fg-color--light: hsla(var(--md-hue), 20%, 80%, 1); +  --md-default-fg-color--lighter: hsla(var(--md-hue), 20%, 80%, 0.5); +  --md-default-fg-color--lightest: hsla(var(--md-hue), 20%, 80%, 0.2); + +  --md-default-bg-color: hsla(var(--md-hue), 0%, 5%, 1); +  --md-default-bg-color--light: hsla(var(--md-hue), 0%, 5%, 0.54); +  --md-default-bg-color--lighter: hsla(var(--md-hue), 0%, 5%, 0.26); +  --md-default-bg-color--lightest: hsla(var(--md-hue), 0%, 5%, 0.07); + +  --md-typeset-color: hsl(var(--md-hue), 5%, 80%); +  --md-typeset-a-color: hsl(var(--md-hue), 92%, 67%, 1); +  --md-primary-fg-color: hsl(var(--md-hue), 92%, 25%, 1); +  --md-table-header-fg-color: var(--md-typeset-color); +  --md-table-header-bg-color: hsla(var(--md-hue), 0%, 20%, 1); + +  --md-code-fg-color: hsla(var(--md-hue),0%,86%,1); +  --md-code-bg-color: hsla(var(--md-hue),0%,15%,1); +} + +[data-md-color-primary=hedgedoc] .md-typeset table:not([class]) th { +  background-color: var(--md-table-header-bg-color); +  color: var(--md-table-header-fg-color); +} +  [data-md-color-primary=hedgedoc] { -  --md-primary-fg-color: #b51f08; -  --md-primary-fg-color--light: #b51f08; -  --md-primary-fg-color--dark: #b51f08; -  --md-primary-bg-color: hsla(0, 0%, 100%, 1); -  --md-primary-bg-color--light: hsla(0, 0%, 100%, 0.7); +  --md-hue: 8; +  --md-primary-fg-color: hsl(var(--md-hue), 92%, 37%, 1); +  --md-primary-fg-color--dark: var(--md-primary-fg-color); +  --md-primary-fg-color--light: var(--md-primary-fg-color); +  --md-primary-bg-color: hsla(0, 15%, 100%, 1); +  --md-footer-bg-color: hsla(var(--md-hue), 0%, 12%, 1); +  --md-footer-bg-color--dark: hsla(var(--md-hue), 0%, 16%, 1); + +  --md-table-header-fg-color: var(--md-default-bg-color); +  --md-table-header-bg-color: var(--md-default-fg-color--light);  }  [data-md-color-accent=hedgedoc] { @@ -24,3 +56,11 @@  .mastodon {    color: #2b90d9;  } + +[data-md-color-scheme="slate"] .light-mode-only { +  display: none; +} + +[data-md-color-scheme="light"] .dark-mode-only { +  display: none; +} diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 41e80659..f78479d5 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -36,10 +36,11 @@ nav:            - MinIO: guides/minio-image-upload.md            - S3: guides/s3-image-upload.md        - Migrate from Etherpad: guides/migrate-etherpad.md -      - Breaking Changes: guides/migrations-and-breaking-changes.md        - Migration Troubleshooting: guides/migration-troubleshooting.md        - Terms of Use Setup: guides/providing-terms.md    - Configuration: configuration.md +  - References: +    - 'HedgeDoc Flavored Markdown': references/hfm.md    - Developer:        - 'Getting Started': dev/getting-started.md        - API: dev/api.md @@ -57,15 +58,29 @@ markdown_extensions:        emoji_index: !!python/name:materialx.emoji.twemoji        emoji_generator: !!python/name:materialx.emoji.to_svg    - attr_list +  - footnotes +  - admonition  theme:    name: 'material'    language: en    favicon: images/favicon.png    logo: images/logo.svg    palette: -    scheme: light -    primary: 'hedgedoc' -    accent: 'hedgedoc' +    - media: "(prefers-color-scheme: light)" +      scheme: light +      primary: 'hedgedoc' +      accent: 'hedgedoc' +      toggle: +        icon: material/lightbulb-outline +        name: Switch to dark mode +    # Dark mode +    - media: "(prefers-color-scheme: dark)" +      scheme: slate +      primary: 'hedgedoc' +      accent: 'hedgedoc' +      toggle: +        icon: material/lightbulb +        name: Switch to light mode    features:      - navigation.tabs      - navigation.sections diff --git a/docs/requirements.txt b/docs/requirements.txt index 805e00cc..2d82f6a7 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,4 +1,4 @@  mkdocs==1.1.2 -mkdocs-material==7.0.6 +mkdocs-material==7.1.3  pymdown-extensions==8.1.1  mdx_truly_sane_lists==1.2 diff --git a/lib/config/index.js b/lib/config/index.js index 17c13f5f..48e61b6c 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -179,7 +179,6 @@ switch (config.imageUploadType) {      config.allowedUploadMimeTypes = [        'image/jpeg',        'image/png', -      'image/jpg',        'image/gif'      ]      break @@ -187,7 +186,6 @@ switch (config.imageUploadType) {      config.allowedUploadMimeTypes = [        'image/jpeg',        'image/png', -      'image/jpg',        'image/gif',        'image/svg+xml'      ] @@ -5,7 +5,7 @@ const CspStrategy = {}  const defaultDirectives = {    defaultSrc: ['\'self\''], -  scriptSrc: ['\'self\'', 'vimeo.com', 'https://gist.github.com', 'www.slideshare.net', 'https://query.yahooapis.com', '\'unsafe-eval\''], +  scriptSrc: ['\'self\'', 'vimeo.com', 'https://gist.github.com', 'www.slideshare.net', '\'unsafe-eval\''],    // ^ TODO: Remove unsafe-eval - webpack script-loader issues https://github.com/hackmdio/codimd/issues/594    imgSrc: ['*'],    styleSrc: ['\'self\'', '\'unsafe-inline\'', 'https://github.githubassets.com'], // unsafe-inline is required for some libs, plus used in views diff --git a/lib/errors.js b/lib/errors.js index 950b4cae..599f54b2 100644 --- a/lib/errors.js +++ b/lib/errors.js @@ -20,6 +20,9 @@ module.exports = {    errorBadRequest: function (res) {      responseError(res, '400', 'Bad Request', 'something not right.')    }, +  errorConflict: function (res) { +    responseError(res, '409', 'Conflict', 'This note already exists.') +  },    errorTooLong: function (res) {      responseError(res, '413', 'Payload Too Large', 'Shorten your note!')    }, diff --git a/lib/prometheus.js b/lib/prometheus.js new file mode 100644 index 00000000..1ffb9ad7 --- /dev/null +++ b/lib/prometheus.js @@ -0,0 +1,49 @@ +const promClient = require('prom-client') +const realtime = require('./realtime') + +exports.setupCustomPrometheusMetrics = function () { +  const onlineNotes = new promClient.Gauge({ +    name: 'hedgedoc_online_notes', +    help: 'Notes currently being edited' +  }) +  const onlineSessions = new promClient.Gauge({ +    name: 'hedgedoc_online_sessions', +    help: 'Sessions currently editing notes', +    labelNames: ['type'] +  }) +  const onlineUsers = new promClient.Gauge({ +    name: 'hedgedoc_online_users', +    help: 'Distinct users currently editing notes', +    labelNames: ['type'] +  }) +  const notesCount = new promClient.Gauge({ +    name: 'hedgedoc_notes', +    help: 'Notes in the instance' +  }) +  const registeredUsers = new promClient.Gauge({ +    name: 'hedgedoc_registered_users', +    help: 'Users that registered in the instance' +  }) +  const isConnectionBusy = new promClient.Gauge({ +    name: 'hedgedoc_connection_busy', +    help: 'Indicates that realtime currently connecting' +  }) +  const connectionSocketQueueLength = new promClient.Gauge({ +    name: 'hedgedoc_connection_socket_queue_length', +    help: 'Length of connection socket queue', +    // The last gauge provides the collect callback for all metrics +    collect () { +      realtime.getStatus(function (data) { +        onlineNotes.set(data.onlineNotes) +        onlineSessions.set({ type: 'all' }, data.onlineUsers) +        onlineSessions.set({ type: 'signed-in' }, data.onlineRegisteredUsers) +        onlineUsers.set({ type: 'all' }, data.distinctOnlineUsers) +        onlineUsers.set({ type: 'signed-in' }, data.distinctOnlineRegisteredUsers) +        notesCount.set(data.notesCount) +        registeredUsers.set(data.registeredUsers) +        isConnectionBusy.set(data.isConnectionBusy ? 1 : 0) +        connectionSocketQueueLength.set(data.connectionSocketQueueLength) +      }) +    } +  }) +} diff --git a/lib/web/imageRouter/imgur.js b/lib/web/imageRouter/imgur.js index dcb03a7a..ed0e1182 100644 --- a/lib/web/imageRouter/imgur.js +++ b/lib/web/imageRouter/imgur.js @@ -1,8 +1,8 @@  'use strict'  const config = require('../../config')  const logger = require('../../logger') - -const imgur = require('imgur') +const fs = require('fs') +const fetch = require('node-fetch')  exports.uploadImage = function (imagePath, callback) {    if (!callback || typeof callback !== 'function') { @@ -15,12 +15,30 @@ exports.uploadImage = function (imagePath, callback) {      return    } -  imgur.setClientId(config.imgur.clientID) -  imgur.uploadFile(imagePath) -    .then(function (json) { +  // The following client ID is for use with HedgeDoc only +  const clientId = config.imgur.clientID || '032aa2f687790cd' + +  const buffer = fs.readFileSync(imagePath) + +  const params = new URLSearchParams() +  params.append('image', buffer.toString('base64')) +  params.append('type', 'base64') +  fetch('https://api.imgur.com/3/image', { +    method: 'POST', +    body: params, +    headers: { Authorization: `Client-ID ${clientId}` } +  }) +    .then((res) => { +      if (!res.ok) { +        callback(new Error(res.statusText), null) +        return +      } +      return res.json() +    }) +    .then((json) => {        logger.debug(`SERVER uploadimage success: ${JSON.stringify(json)}`)        callback(null, json.data.link.replace(/^http:\/\//i, 'https://')) -    }).catch(function (err) { +    }).catch((err) => {        callback(new Error(err), null)      })  } diff --git a/lib/web/imageRouter/index.js b/lib/web/imageRouter/index.js index 0a72c65c..ee123867 100644 --- a/lib/web/imageRouter/index.js +++ b/lib/web/imageRouter/index.js @@ -7,6 +7,7 @@ const FileType = require('file-type')  const fs = require('fs')  const os = require('os')  const rimraf = require('rimraf') +const isSvg = require('is-svg')  const config = require('../../config')  const logger = require('../../logger') @@ -15,12 +16,26 @@ const errors = require('../../errors')  const imageRouter = (module.exports = Router())  async function checkUploadType (filePath) { -  const typeFromMagic = await FileType.fromFile(filePath) +  const extension = path.extname(filePath).toLowerCase() +  let typeFromMagic = await FileType.fromFile(filePath) +  if (extension === '.svg' && (typeFromMagic === undefined || typeFromMagic.mime === 'application/xml')) { +    const fileContent = fs.readFileSync(filePath) +    if (isSvg(fileContent)) { +      typeFromMagic = { +        ext: 'svg', +        mime: 'image/svg+xml' +      } +    } +  }    if (typeFromMagic === undefined) {      logger.error('Image upload error: Could not determine MIME-type')      return false    } -  if (path.extname(filePath) !== '.' + typeFromMagic.ext) { +  // .jpeg, .jfif, .jpe files are identified by FileType to have the extension jpg +  if (['.jpeg', '.jfif', '.jpe'].includes(extension) && typeFromMagic.ext === 'jpg') { +    typeFromMagic.ext = extension.substr(1) +  } +  if (extension !== '.' + typeFromMagic.ext) {      logger.error(        'Image upload error: Provided file extension does not match MIME-type'      ) diff --git a/lib/web/note/util.js b/lib/web/note/util.js index effeb41c..5df1e820 100644 --- a/lib/web/note/util.js +++ b/lib/web/note/util.js @@ -46,7 +46,7 @@ exports.checkViewPermission = function (req, note) {    }  } -exports.newNote = function (req, res, body) { +exports.newNote = async function (req, res, body) {    let owner = null    const noteId = req.params.noteId ? req.params.noteId : null    if (req.isAuthenticated()) { @@ -60,6 +60,19 @@ exports.newNote = function (req, res, body) {      } else {        return req.method === 'POST' ? errors.errorForbidden(res) : errors.errorNotFound(res)      } +    try { +      const count = await models.Note.count({ +        where: { +          alias: req.alias +        } +      }) +      if (count > 0) { +        return errors.errorConflict(res) +      } +    } catch (err) { +      logger.error('Error while checking for possible duplicate: ' + err) +      return errors.errorInternalError(res) +    }    }    models.Note.create({      ownerId: owner, @@ -69,7 +82,7 @@ exports.newNote = function (req, res, body) {    }).then(function (note) {      return res.redirect(config.serverURL + '/' + (note.alias ? note.alias : models.Note.encodeNoteId(note.id)))    }).catch(function (err) { -    logger.error(err) +    logger.error('Note could not be created: ' + err)      return errors.errorInternalError(res)    })  } diff --git a/package.json b/package.json index 9a138cf8..3fe38654 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@      "Idle.Js": "git+https://github.com/shawnmclean/Idle.js",      "archiver": "^5.0.2",      "async": "^3.0.0", -    "aws-sdk": "^2.521.0", +    "aws-sdk": "^2.888.0",      "azure-storage": "^2.7.0",      "base64url": "^3.0.0",      "body-parser": "^1.15.2", @@ -50,11 +50,11 @@      "gist-embed": "^2.6.0",      "graceful-fs": "^4.1.11",      "handlebars": "^4.5.2", -    "helmet": "^4.0.0", +    "helmet": "^4.5.0",      "highlight.js": "^10.0.0",      "i18n": "^0.13.0", -    "imgur": "git+https://github.com/hackmdio/node-imgur.git",      "ionicons": "^2.0.1", +    "is-svg": "^4.3.1",      "jquery": "^3.5.1",      "jquery-mousewheel": "^3.1.13",      "jquery-ui": "^1.12.1", @@ -108,6 +108,8 @@      "pg": "^8.2.1",      "pg-hstore": "^2.3.3",      "prismjs": "^1.21.0", +    "prom-client": "^13.1.0", +    "prometheus-api-metrics": "^3.2.0",      "randomcolor": "^0.6.0",      "raphael": "^2.3.0",      "readline-sync": "^1.4.7", @@ -134,7 +136,7 @@      "visibilityjs": "^2.0.0",      "viz.js": "^1.7.0",      "winston": "^3.1.0", -    "ws": "^7.0.0", +    "ws": "^7.4.4",      "wurl": "^2.5.3",      "xss": "^1.0.3"    }, @@ -144,7 +146,7 @@      "**/request": "^2.88.0"    },    "engines": { -    "node": ">=10.13" +    "node": ">=12"    },    "bugs": "https://github.com/hedgedoc/hedgedoc/issues",    "keywords": [ @@ -177,12 +179,12 @@      "babel-preset-env": "1.7.0",      "babel-runtime": "6.26.0",      "copy-webpack-plugin": "6.4.1", -    "css-loader": "5.1.3", -    "eslint": "7.22.0", +    "css-loader": "5.2.4", +    "eslint": "7.25.0",      "eslint-config-standard": "16.0.2",      "eslint-plugin-import": "2.22.1",      "eslint-plugin-node": "11.1.0", -    "eslint-plugin-promise": "4.3.1", +    "eslint-plugin-promise": "5.1.0",      "eslint-plugin-standard": "4.1.0",      "expose-loader": "1.0.3",      "file-loader": "6.2.0", @@ -191,7 +193,7 @@      "jsonlint": "1.6.3",      "less": "4.1.1",      "less-loader": "7.3.0", -    "mini-css-extract-plugin": "1.3.9", +    "mini-css-extract-plugin": "1.5.0",      "mocha": "8.3.2",      "mock-require": "3.0.3",      "optimize-css-assets-webpack-plugin": "5.0.4", @@ -201,7 +203,7 @@      "string-loader": "0.0.1",      "url-loader": "4.1.1",      "webpack": "4.46.0", -    "webpack-cli": "4.5.0", +    "webpack-cli": "4.6.0",      "webpack-merge": "5.7.3"    },    "optionalDependencies": { diff --git a/public/docs/features.md b/public/docs/features.md index 6c16b265..5e53ed13 100644 --- a/public/docs/features.md +++ b/public/docs/features.md @@ -1,3 +1,6 @@ +--- +tags: features, cool, updated +---  # Features  ## Introduction @@ -125,9 +128,13 @@ The first **level 1 heading** (e.g. `# Title`) will be used as the note title.  ### Tags -Using tags as follows, the specified tags will show in your **history**. +Tags can be specified with [YAML metadata](./yaml-metadata#tags) at the **start** of the note. Those tags will show in your **history**. -#### tags: `features` `cool` `updated` +```yml +--- +tags: features, cool, updated +--- +```  ### [YAML Metadata](./yaml-metadata) diff --git a/public/docs/release-notes.md b/public/docs/release-notes.md index b12644a2..26257541 100644 --- a/public/docs/release-notes.md +++ b/public/docs/release-notes.md @@ -1,9 +1,18 @@  # Release Notes  ## <i class="fa fa-tag"></i> 1.8.0 <i class="fa fa-calendar-o"></i> UNRELEASED + +**Please note:** This release dropped support for Node 10, which is end-of-life since April 2021. You now need at least Node 12 to run HedgeDoc, but we recommend running [the latest LTS release](https://nodejs.org/en/about/releases/). +  ### Features  - Database migrations are now automatically applied on application startup.      The separate `.sequelizerc` configuration file is no longer necessary and can be safely deleted. +- A Prometheus-endpoint is now available at `/metrics`, exposing the same stats as `/status` +  in addition to various Node.js performance figures. +### Enhancements +- Removed dependency on external imgur library +  +  ## <i class="fa fa-tag"></i> 1.7.2 <i class="fa fa-calendar-o"></i> 2021-01-15  This release fixes a security issue. We recommend upgrading as soon as possible.  ### Security Fixes @@ -10,9 +10,9 @@      tslib "^2.0.0"  "@azure/core-auth@^1.1.4": -  version "1.2.0" -  resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.2.0.tgz#a5a181164e99f8446a3ccf9039345ddc9bb63bb9" -  integrity sha512-KUl+Nwn/Sm6Lw5d3U90m1jZfNSL087SPcqHLxwn2T6PupNKmcgsEbDjHB25gDvHO4h7pBsTlrdJAY7dz+Qk8GA== +  version "1.3.0" +  resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.0.tgz#0d55517cf0650aefe755669aca8a2f3724fcf536" +  integrity sha512-kSDSZBL6c0CYdhb+7KuutnKGf2geeT+bCJAgccB0DD7wmNJSsQPcF7TcuoZX83B7VK4tLz/u+8sOO/CnCsYp8A==    dependencies:      "@azure/abort-controller" "^1.0.0"      tslib "^2.0.0" @@ -154,16 +154,72 @@    resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3"    integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w== +"@types/accepts@*": +  version "1.3.5" +  resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" +  integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== +  dependencies: +    "@types/node" "*" +  "@types/anymatch@*":    version "1.3.1"    resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a"    integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@types/body-parser@*": +  version "1.19.0" +  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" +  integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== +  dependencies: +    "@types/connect" "*" +    "@types/node" "*" + +"@types/connect@*": +  version "3.4.34" +  resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" +  integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== +  dependencies: +    "@types/node" "*" + +"@types/content-disposition@*": +  version "0.5.3" +  resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" +  integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== + +"@types/cookies@*": +  version "0.7.6" +  resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.6.tgz#71212c5391a976d3bae57d4b09fac20fc6bda504" +  integrity sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w== +  dependencies: +    "@types/connect" "*" +    "@types/express" "*" +    "@types/keygrip" "*" +    "@types/node" "*" +  "@types/debug@^4.1.5":    version "4.1.5"    resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"    integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== +"@types/express-serve-static-core@^4.17.12", "@types/express-serve-static-core@^4.17.18": +  version "4.17.19" +  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" +  integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== +  dependencies: +    "@types/node" "*" +    "@types/qs" "*" +    "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.8": +  version "4.17.11" +  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" +  integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== +  dependencies: +    "@types/body-parser" "*" +    "@types/express-serve-static-core" "^4.17.18" +    "@types/qs" "*" +    "@types/serve-static" "*" +  "@types/geojson@^7946.0.7":    version "7946.0.7"    resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.7.tgz#c8fa532b60a0042219cdf173ca21a975ef0666ad" @@ -174,6 +230,16 @@    resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50"    integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== +"@types/http-assert@*": +  version "1.5.1" +  resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" +  integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== + +"@types/http-errors@*": +  version "1.8.0" +  resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" +  integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== +  "@types/json-schema@^7.0.6":    version "7.0.7"    resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" @@ -184,10 +250,36 @@    resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"    integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/keygrip@*": +  version "1.0.2" +  resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" +  integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/koa-compose@*": +  version "3.2.5" +  resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" +  integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== +  dependencies: +    "@types/koa" "*" + +"@types/koa@*", "@types/koa@^2.11.4": +  version "2.13.1" +  resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.1.tgz#e29877a6b5ad3744ab1024f6ec75b8cbf6ec45db" +  integrity sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q== +  dependencies: +    "@types/accepts" "*" +    "@types/content-disposition" "*" +    "@types/cookies" "*" +    "@types/http-assert" "*" +    "@types/http-errors" "*" +    "@types/keygrip" "*" +    "@types/koa-compose" "*" +    "@types/node" "*" +  "@types/ldapjs@^1.0.9": -  version "1.0.9" -  resolved "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.9.tgz#1224192d14cc5ab5218fcea72ebb04489c52cb95" -  integrity sha512-3PvY7Drp1zoLbcGlothCAkoc5o6Jp9KvUPwHadlHyKp3yPvyeIh7w2zQc9UXMzgDRkoeGXUEODtbEs5XCh9ZyA== +  version "1.0.10" +  resolved "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.10.tgz#bac705c9e154b97d69496b5213cc28dbe9715a37" +  integrity sha512-AMkMxkK/wjYtWebNH2O+rARfo7scBpW3T23g6zmGCwDgbyDbR79XWpcSqhPWdU+fChaF+I3dVyl9X2dT1CyI9w==    dependencies:      "@types/node" "*" @@ -198,15 +290,20 @@    dependencies:      "@types/unist" "*" +"@types/mime@^1": +  version "1.3.2" +  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" +  integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +  "@types/node@*", "@types/node@^14.14.28": -  version "14.14.34" -  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.34.tgz#07935194fc049069a1c56c0c274265abeddf88da" -  integrity sha512-dBPaxocOK6UVyvhbnpFIj2W+S+1cBTkHQbFQfeeJhoKFbzYcVUGHvddeWPSucKATb3F0+pgDq0i6ghEaZjsugA== +  version "14.14.41" +  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" +  integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==  "@types/node@^12.12.17": -  version "12.20.5" -  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.5.tgz#4ca82a766f05c359fd6c77505007e5a272f4bb9b" -  integrity sha512-5Oy7tYZnu3a4pnJ//d4yVvOImExl4Vtwf0D40iKUlU+XlUsyV9iyFWyCFlwy489b72FMAik/EFwRkNLjjOdSPg== +  version "12.20.10" +  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.10.tgz#4dcb8a85a8f1211acafb88d72fafc7e3d2685583" +  integrity sha512-TxCmnSSppKBBOzYzPR2BR25YlX5Oay8z2XGwFBInuA/Co0V9xJhLlW4kjbxKtgeNo3NOMbQP1A5Rc03y+XecPw==  "@types/node@^8.0.47":    version "8.10.66" @@ -218,6 +315,16 @@    resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"    integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== +"@types/qs@*": +  version "6.9.6" +  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" +  integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== + +"@types/range-parser@*": +  version "1.2.3" +  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" +  integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== +  "@types/readable-stream@^2.3.5", "@types/readable-stream@^2.3.9":    version "2.3.9"    resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.9.tgz#40a8349e6ace3afd2dd1b6d8e9b02945de4566a9" @@ -226,15 +333,23 @@      "@types/node" "*"      safe-buffer "*" +"@types/serve-static@*": +  version "1.13.9" +  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" +  integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== +  dependencies: +    "@types/mime" "^1" +    "@types/node" "*" +  "@types/source-list-map@*":    version "0.1.2"    resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"    integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== -"@types/tapable@*", "@types/tapable@^1.0.5": -  version "1.0.6" -  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" -  integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== +"@types/tapable@^1", "@types/tapable@^1.0.5": +  version "1.0.7" +  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" +  integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==  "@types/uglify-js@*":    version "3.13.0" @@ -258,13 +373,13 @@      source-map "^0.7.3"  "@types/webpack@^4.41.8": -  version "4.41.26" -  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" -  integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== +  version "4.41.27" +  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" +  integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==    dependencies:      "@types/anymatch" "*"      "@types/node" "*" -    "@types/tapable" "*" +    "@types/tapable" "^1"      "@types/uglify-js" "*"      "@types/webpack-sources" "*"      source-map "^0.6.0" @@ -419,22 +534,22 @@      "@webassemblyjs/wast-parser" "1.9.0"      "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.1": -  version "1.0.1" -  resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz#241aecfbdc715eee96bed447ed402e12ec171935" -  integrity sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ== +"@webpack-cli/configtest@^1.0.2": +  version "1.0.2" +  resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.2.tgz#2a20812bfb3a2ebb0b27ee26a52eeb3e3f000836" +  integrity sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA== -"@webpack-cli/info@^1.2.2": -  version "1.2.2" -  resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz#ef3c0cd947a1fa083e174a59cb74e0b6195c236c" -  integrity sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ== +"@webpack-cli/info@^1.2.3": +  version "1.2.3" +  resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.3.tgz#ef819d10ace2976b6d134c7c823a3e79ee31a92c" +  integrity sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==    dependencies:      envinfo "^7.7.3" -"@webpack-cli/serve@^1.3.0": -  version "1.3.0" -  resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz#2730c770f5f1f132767c63dcaaa4ec28f8c56a6c" -  integrity sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw== +"@webpack-cli/serve@^1.3.1": +  version "1.3.1" +  resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.1.tgz#911d1b3ff4a843304b9c3bacf67bb34672418441" +  integrity sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==  "@xtuc/ieee754@^1.2.0":    version "1.2.0" @@ -536,10 +651,10 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:      json-schema-traverse "^0.4.1"      uri-js "^4.2.2" -ajv@^7.0.2: -  version "7.2.1" -  resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.2.1.tgz#a5ac226171912447683524fa2f1248fcf8bac83d" -  integrity sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ== +ajv@^8.0.1: +  version "8.1.0" +  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736" +  integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==    dependencies:      fast-deep-equal "^3.1.1"      json-schema-traverse "^1.0.0" @@ -617,9 +732,9 @@ anymatch@^2.0.0:      normalize-path "^2.1.1"  anymatch@~3.1.1: -  version "3.1.1" -  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" -  integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +  version "3.1.2" +  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" +  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==    dependencies:      normalize-path "^3.0.0"      picomatch "^2.0.4" @@ -750,11 +865,6 @@ arraybuffer.slice@~0.0.7:    resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"    integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== -asap@^2.0.0: -  version "2.0.6" -  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" -  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -  asn1.js@^5.2.0:    version "5.4.1"    resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -832,10 +942,10 @@ available-typed-arrays@^1.0.2:    dependencies:      array-filter "^1.0.0" -aws-sdk@^2.521.0: -  version "2.863.0" -  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.863.0.tgz#602d244a947ce31c8d84de73f9a5b74e7cb95f5b" -  integrity sha512-krr0047EOl9qpRdhPoyYxI7+viVUpX+t+Vjbf+alXdOE172DC+hFi8y6egIM1xVV4KkMFm0y0EykBWgA93XNNA== +aws-sdk@^2.888.0: +  version "2.891.0" +  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.891.0.tgz#02cc2cc6adb94e0d471a5be6dd5668d0c5aacd9e" +  integrity sha512-st6bKbmA1iWyAz9Fn7CHHNVk/6d51aemPBNpg5sK0kkOSYEob/pCAVSLiN1tGVX6qvjtD41ljeeJDQ3pwRTJfA==    dependencies:      buffer "4.9.2"      events "1.1.1" @@ -1457,9 +1567,9 @@ bail@^1.0.0:    integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==  balanced-match@^1.0.0: -  version "1.0.0" -  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" -  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +  version "1.0.2" +  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" +  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==  base64-arraybuffer@0.1.4:    version "0.1.4" @@ -1535,6 +1645,11 @@ bindings@^1.5.0:    dependencies:      file-uri-to-path "1.0.0" +bintrees@1.0.1: +  version "1.0.1" +  resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" +  integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= +  bl@^3.0.0:    version "3.0.1"    resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.1.tgz#1cbb439299609e419b5a74d7fce2f8b37d8e5c6f" @@ -1741,15 +1856,15 @@ browserslist@^3.2.6:      electron-to-chromium "^1.3.47"  browserslist@^4.0.0: -  version "4.16.3" -  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" -  integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== +  version "4.16.5" +  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.5.tgz#952825440bca8913c62d0021334cbe928ef062ae" +  integrity sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==    dependencies: -    caniuse-lite "^1.0.30001181" -    colorette "^1.2.1" -    electron-to-chromium "^1.3.649" +    caniuse-lite "^1.0.30001214" +    colorette "^1.2.2" +    electron-to-chromium "^1.3.719"      escalade "^3.1.1" -    node-releases "^1.1.70" +    node-releases "^1.1.71"  buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:    version "0.2.13" @@ -1837,9 +1952,9 @@ cacache@^12.0.2:      y18n "^4.0.0"  cacache@^15.0.5: -  version "15.0.5" -  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" -  integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== +  version "15.0.6" +  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" +  integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==    dependencies:      "@npmcli/move-file" "^1.0.1"      chownr "^2.0.0" @@ -1855,7 +1970,7 @@ cacache@^15.0.5:      p-map "^4.0.0"      promise-inflight "^1.0.1"      rimraf "^3.0.2" -    ssri "^8.0.0" +    ssri "^8.0.1"      tar "^6.0.2"      unique-filename "^1.1.1" @@ -1942,10 +2057,10 @@ caniuse-api@^3.0.0:      lodash.memoize "^4.1.2"      lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001181: -  version "1.0.30001199" -  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001199.tgz#062afccaad21023e2e647d767bac4274b8b8fd7f" -  integrity sha512-ifbK2eChUCFUwGhlEzIoVwzFt1+iriSjyKKFYNfv6hN34483wyWpLLavYQXhnR036LhkdUYaSDpHg1El++VgHQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001214: +  version "1.0.30001214" +  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz#70f153c78223515c6d37a9fde6cd69250da9d872" +  integrity sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg==  caseless@~0.12.0:    version "0.12.0" @@ -1981,9 +2096,9 @@ chalk@^3.0.0:      supports-color "^7.1.0"  chalk@^4.0.0: -  version "4.1.0" -  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" -  integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +  version "4.1.1" +  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" +  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==    dependencies:      ansi-styles "^4.1.0"      supports-color "^7.1.0" @@ -2100,11 +2215,9 @@ chownr@^2.0.0:    integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==  chrome-trace-event@^1.0.2: -  version "1.0.2" -  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" -  integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== -  dependencies: -    tslib "^1.9.0" +  version "1.0.3" +  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" +  integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==  cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:    version "1.0.4" @@ -2275,7 +2388,7 @@ combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6:    dependencies:      delayed-stream "~1.0.0" -commander@2, commander@^2.11.0, commander@^2.13.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3: +commander@2, commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3:    version "2.20.3"    resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"    integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2286,9 +2399,9 @@ commander@^4.1.1:    integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==  commander@^7.0.0: -  version "7.1.0" -  resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" -  integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== +  version "7.2.0" +  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" +  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==  commondir@^1.0.1:    version "1.0.1" @@ -2602,23 +2715,22 @@ css-declaration-sorter@^4.0.1:      postcss "^7.0.1"      timsort "^0.3.0" -css-loader@5.1.3: -  version "5.1.3" -  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.1.3.tgz#87f6fc96816b20debe3cf682f85c7e56a963d0d1" -  integrity sha512-CoPZvyh8sLiGARK3gqczpfdedbM74klGWurF2CsNZ2lhNaXdLIUks+3Mfax3WBeRuHoglU+m7KG/+7gY6G4aag== +css-loader@5.2.4: +  version "5.2.4" +  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" +  integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==    dependencies:      camelcase "^6.2.0" -    cssesc "^3.0.0"      icss-utils "^5.1.0"      loader-utils "^2.0.0" -    postcss "^8.2.8" +    postcss "^8.2.10"      postcss-modules-extract-imports "^3.0.0"      postcss-modules-local-by-default "^4.0.0"      postcss-modules-scope "^3.0.0"      postcss-modules-values "^4.0.0"      postcss-value-parser "^4.1.0"      schema-utils "^3.0.0" -    semver "^7.3.4" +    semver "^7.3.5"  css-select-base-adapter@^0.1.1:    version "0.1.1" @@ -2654,9 +2766,9 @@ css-tree@1.0.0-alpha.37:      source-map "^0.6.1"  css-tree@^1.1.2: -  version "1.1.2" -  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" -  integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== +  version "1.1.3" +  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" +  integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==    dependencies:      mdn-data "2.0.14"      source-map "^0.6.1" @@ -2681,10 +2793,10 @@ cssfilter@0.0.10:    resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"    integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= -cssnano-preset-default@^4.0.7: -  version "4.0.7" -  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" -  integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== +cssnano-preset-default@^4.0.8: +  version "4.0.8" +  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" +  integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==    dependencies:      css-declaration-sorter "^4.0.1"      cssnano-util-raw-cache "^4.0.1" @@ -2714,7 +2826,7 @@ cssnano-preset-default@^4.0.7:      postcss-ordered-values "^4.1.2"      postcss-reduce-initial "^4.0.3"      postcss-reduce-transforms "^4.0.2" -    postcss-svgo "^4.0.2" +    postcss-svgo "^4.0.3"      postcss-unique-selectors "^4.0.1"  cssnano-util-get-arguments@^4.0.0: @@ -2740,12 +2852,12 @@ cssnano-util-same-parent@^4.0.0:    integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==  cssnano@^4.1.10: -  version "4.1.10" -  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" -  integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== +  version "4.1.11" +  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" +  integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==    dependencies:      cosmiconfig "^5.0.0" -    cssnano-preset-default "^4.0.7" +    cssnano-preset-default "^4.0.8"      is-resolvable "^1.0.0"      postcss "^7.0.0" @@ -3295,9 +3407,9 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:    integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==  domelementtype@^2.0.1: -  version "2.1.0" -  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" -  integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +  version "2.2.0" +  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" +  integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==  domhandler@^2.3.0:    version "2.4.2" @@ -3384,10 +3496,10 @@ ejs@^3.0.0:    dependencies:      jake "^10.6.1" -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.649: -  version "1.3.687" -  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.687.tgz#c336184b7ab70427ffe2ee79eaeaedbc1ad8c374" -  integrity sha512-IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ== +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.719: +  version "1.3.719" +  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.719.tgz#87166fee347a46a2557f19aadb40a1d68241e61c" +  integrity sha512-heM78GKSqrIzO9Oz0/y22nTBN7bqSP1Pla2SyU9DiSnQD+Ea9SyyN5RWWlgqsqeBLNDkSlE9J9EHFmdMPzxB/g==  elliptic@^6.5.3:    version "6.5.4" @@ -3513,9 +3625,9 @@ entity-decode@^2.0.2:      he "^1.1.1"  envinfo@^7.7.3: -  version "7.7.4" -  resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" -  integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== +  version "7.8.1" +  resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" +  integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==  errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:    version "0.1.8" @@ -3661,10 +3773,10 @@ eslint-plugin-node@11.1.0:      resolve "^1.10.1"      semver "^6.1.0" -eslint-plugin-promise@4.3.1: -  version "4.3.1" -  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" -  integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== +eslint-plugin-promise@5.1.0: +  version "5.1.0" +  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz#fb2188fb734e4557993733b41aa1a688f46c6f24" +  integrity sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==  eslint-plugin-standard@4.1.0:    version "4.1.0" @@ -3704,10 +3816,10 @@ eslint-visitor-keys@^2.0.0:    resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"    integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@7.22.0: -  version "7.22.0" -  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.22.0.tgz#07ecc61052fec63661a2cab6bd507127c07adc6f" -  integrity sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg== +eslint@7.25.0: +  version "7.25.0" +  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67" +  integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==    dependencies:      "@babel/code-frame" "7.12.11"      "@eslint/eslintrc" "^0.4.0" @@ -4016,7 +4128,7 @@ fast-safe-stringify@^2.0.4:    resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"    integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== -fast-xml-parser@^3.17.5: +fast-xml-parser@^3.17.5, fast-xml-parser@^3.19.0:    version "3.19.0"    resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01"    integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== @@ -4041,9 +4153,9 @@ fault@^1.0.0, fault@^1.0.2:      format "^0.2.0"  fecha@^4.2.0: -  version "4.2.0" -  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" -  integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== +  version "4.2.1" +  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" +  integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==  figgy-pudding@^3.5.1:    version "3.5.2" @@ -4452,9 +4564,9 @@ get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@      has-symbols "^1.0.1"  get-stream@^6.0.0: -  version "6.0.0" -  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" -  integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +  version "6.0.1" +  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" +  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==  get-value@^2.0.3, get-value@^2.0.6:    version "2.0.6" @@ -4523,9 +4635,9 @@ globals@^12.1.0:      type-fest "^0.8.1"  globals@^13.6.0: -  version "13.6.0" -  resolved "https://registry.yarnpkg.com/globals/-/globals-13.6.0.tgz#d77138e53738567bb96a3916ff6f6b487af20ef7" -  integrity sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ== +  version "13.8.0" +  resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" +  integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==    dependencies:      type-fest "^0.20.2" @@ -4535,9 +4647,9 @@ globals@^9.18.0:    integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==  globby@^11.0.1: -  version "11.0.2" -  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" -  integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== +  version "11.0.3" +  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" +  integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==    dependencies:      array-union "^2.1.0"      dir-glob "^3.0.1" @@ -4602,7 +4714,7 @@ has-ansi@^2.0.0:    dependencies:      ansi-regex "^2.0.0" -has-bigints@^1.0.0: +has-bigints@^1.0.1:    version "1.0.1"    resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"    integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== @@ -4634,7 +4746,7 @@ has-flag@^4.0.0:    resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"    integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2:    version "1.0.2"    resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"    integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== @@ -4704,10 +4816,10 @@ he@1.2.0, he@^1.1.1, he@^1.2.0:    resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"    integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -helmet@^4.0.0: -  version "4.4.1" -  resolved "https://registry.yarnpkg.com/helmet/-/helmet-4.4.1.tgz#a17e1444d81d7a83ddc6e6f9bc6e2055b994efe7" -  integrity sha512-G8tp0wUMI7i8wkMk2xLcEvESg5PiCitFMYgGRc/PwULB0RVhTP5GFdxOwvJwp9XVha8CuS8mnhmE8I/8dx/pbw== +helmet@^4.5.0: +  version "4.5.0" +  resolved "https://registry.yarnpkg.com/helmet/-/helmet-4.5.0.tgz#da5a75d30cbd9f60628e9463a85dc7725806c2ea" +  integrity sha512-GfxdTaKarneWOpxmiVb/1YsY+fIwDOxVUGrvNEM1MC8W6Z2PREfkXiWF4XHQdvkyXwUTHuY4DRwB0uH/Q6BVyQ==  hex-color-regex@^1.1.0:    version "1.1.0" @@ -4715,9 +4827,9 @@ hex-color-regex@^1.1.0:    integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==  highlight.js@^10.0.0: -  version "10.6.0" -  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.6.0.tgz#0073aa71d566906965ba6e1b7be7b2682f5e18b6" -  integrity sha512-8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ== +  version "10.7.2" +  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" +  integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg==  hmac-drbg@^1.0.1:    version "1.0.1" @@ -4737,9 +4849,9 @@ home-or-tmp@^2.0.0:      os-tmpdir "^1.0.1"  hosted-git-info@^2.1.4: -  version "2.8.8" -  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" -  integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== +  version "2.8.9" +  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" +  integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==  hsl-regex@^1.0.0:    version "1.0.0" @@ -4751,11 +4863,6 @@ hsla-regex@^1.0.0:    resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"    integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -html-comment-regex@^1.1.0: -  version "1.1.2" -  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" -  integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -  html-minifier-terser@^5.0.1:    version "5.1.1"    resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" @@ -4925,15 +5032,6 @@ image-size@~0.5.0:    resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"    integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= -"imgur@git+https://github.com/hackmdio/node-imgur.git": -  version "0.5.0" -  resolved "git+https://github.com/hackmdio/node-imgur.git#de0a7a1f1eb2cb6628385fedb990ad396a190573" -  dependencies: -    commander "^2.13.0" -    glob "^7.1.2" -    q "^2.0.3" -    request "^2.83.0" -  import-fresh@^2.0.0:    version "2.0.0"    resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -5395,12 +5493,12 @@ is-string@^1.0.5:    resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"    integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== -is-svg@^3.0.0: -  version "3.0.0" -  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" -  integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== +is-svg@^4.3.1: +  version "4.3.1" +  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz#8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b" +  integrity sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==    dependencies: -    html-comment-regex "^1.1.0" +    fast-xml-parser "^3.19.0"  is-symbol@^1.0.2, is-symbol@^1.0.3:    version "1.0.3" @@ -5706,9 +5804,9 @@ keymaster@^1.6.2:    integrity sha1-4a5U0OqUiPn2C2a2aPAumhlGxus=  khroma@^1.1.0: -  version "1.3.0" -  resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.3.0.tgz#1a0238ffcce1b049b8c733d5b07850a379aca04a" -  integrity sha512-fpi0vIulP3FrM3BQOsEs+0ujWUNrg/YyHtEAcnvPxIHbASHNXEKEsDHtU2mADnJss7KvEdz7z2pUCQAEfFaFbA== +  version "1.4.1" +  resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.4.1.tgz#ad6a5b6a972befc5112ce5129887a1a83af2c003" +  integrity sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==  kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:    version "3.2.2" @@ -5933,6 +6031,11 @@ lodash.bind@^4.1.4:    resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"    integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= +lodash.clonedeep@^4.5.0: +  version "4.5.0" +  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" +  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +  lodash.defaults@^4.0.1, lodash.defaults@^4.2.0:    version "4.2.0"    resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -5958,6 +6061,11 @@ lodash.foreach@^4.3.0:    resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"    integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= +lodash.get@^4.4.2: +  version "4.4.2" +  resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" +  integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= +  lodash.isplainobject@^4.0.6:    version "4.0.6"    resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" @@ -5998,6 +6106,11 @@ lodash.some@^4.4.0:    resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"    integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= +lodash.truncate@^4.4.2: +  version "4.4.2" +  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" +  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= +  lodash.union@^4.6.0:    version "4.6.0"    resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" @@ -6219,9 +6332,9 @@ markdown-it-sup@^1.0.0:    integrity sha1-y5yf+RpSVawI8/09YyhuFd8KH8M=  markdown-it@^12.0.0: -  version "12.0.4" -  resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.4.tgz#eec8247d296327eac3ba9746bdeec9cfcc751e33" -  integrity sha512-34RwOXZT8kyuOJy25oJNJoulO8L0bTHYWXcdZBYZqFnjIy3NgjeoM3FmPXIOFQ26/lSHYMr8oc62B6adxXcb3Q== +  version "12.0.6" +  resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.6.tgz#adcc8e5fe020af292ccbdf161fe84f1961516138" +  integrity sha512-qv3sVLl4lMT96LLtR7xeRJX11OUFjsaD5oVat2/SNBIb21bJXwal2+SklcRbTwGwqWpWH/HRtYavOoJE+seL8w==    dependencies:      argparse "^2.0.1"      entities "~2.1.0" @@ -6472,12 +6585,12 @@ micromatch@^3.1.10, micromatch@^3.1.4:      to-regex "^3.0.2"  micromatch@^4.0.2: -  version "4.0.2" -  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" -  integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== +  version "4.0.4" +  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" +  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==    dependencies:      braces "^3.0.1" -    picomatch "^2.0.5" +    picomatch "^2.2.3"  miller-rabin@^4.0.0:    version "4.0.1" @@ -6487,17 +6600,17 @@ miller-rabin@^4.0.0:      bn.js "^4.0.0"      brorand "^1.0.1" -mime-db@1.46.0, "mime-db@>= 1.43.0 < 2": -  version "1.46.0" -  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" -  integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": +  version "1.47.0" +  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" +  integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==  mime-types@^2.1.12, mime-types@^2.1.14, mime-types@^2.1.27, mime-types@^2.1.3, mime-types@~2.1.19, mime-types@~2.1.24: -  version "2.1.29" -  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" -  integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== +  version "2.1.30" +  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" +  integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==    dependencies: -    mime-db "1.46.0" +    mime-db "1.47.0"  mime@1.3.4:    version "1.3.4" @@ -6514,10 +6627,10 @@ mimic-fn@^2.1.0:    resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"    integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mini-css-extract-plugin@1.3.9: -  version "1.3.9" -  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" -  integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== +mini-css-extract-plugin@1.5.0: +  version "1.5.0" +  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.0.tgz#69bee3b273d2d4ee8649a2eb409514b7df744a27" +  integrity sha512-SIbuLMv6jsk1FnLIU5OUG/+VMGUprEjM1+o2trOAx8i5KOKMrhyezb1dJ4Ugsykb8Jgq8/w5NEopy6escV9G7g==    dependencies:      loader-utils "^2.0.0"      schema-utils "^3.0.0" @@ -6763,9 +6876,9 @@ ms@2.1.3, ms@^2.1.1:    integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==  mustache@^4.0.1: -  version "4.1.0" -  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.1.0.tgz#8c1b042238a982d2eb2d30efc6c14296ae3f699d" -  integrity sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ== +  version "4.2.0" +  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" +  integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==  mysql2@^2.0.0:    version "2.2.5" @@ -6803,10 +6916,10 @@ nanoid@^2.1.0:    resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"    integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.1.20: -  version "3.1.21" -  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.21.tgz#25bfee7340ac4185866fbfb2c9006d299da1be7f" -  integrity sha512-A6oZraK4DJkAOICstsGH98dvycPr/4GGDH7ZWKmMdd3vGcOurZ6JmWFUt0DA5bzrrn2FrUjmv6mFNWvv8jpppA== +nanoid@^3.1.22: +  version "3.1.22" +  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" +  integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==  nanomatch@^1.2.9:    version "1.2.13" @@ -6952,7 +7065,7 @@ node-pre-gyp@^0.11.0:      semver "^5.3.0"      tar "^4" -node-releases@^1.1.70: +node-releases@^1.1.71:    version "1.1.71"    resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"    integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== @@ -7008,9 +7121,9 @@ normalize-url@^3.0.0:    integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==  npm-bundled@^1.0.1: -  version "1.1.1" -  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" -  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== +  version "1.1.2" +  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" +  integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==    dependencies:      npm-normalize-package-bin "^1.0.1" @@ -7087,9 +7200,9 @@ object-copy@^0.1.0:      kind-of "^3.0.3"  object-inspect@^1.9.0: -  version "1.9.0" -  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" -  integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +  version "1.10.2" +  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" +  integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==  object-is@^1.1.4:    version "1.1.5" @@ -7189,9 +7302,9 @@ onetime@^5.1.2:      mimic-fn "^2.1.0"  openid@2.x.x: -  version "2.0.7" -  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.7.tgz#37bf50af2aa692623364c004de35d41fd399c6e4" -  integrity sha512-xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw== +  version "2.0.8" +  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.8.tgz#e3a09b55641101156ad086971721a98d0723c547" +  integrity sha512-ljI4GE6p4RYn9dLftlXw6TvlA+untAkoWBRpj4qIB4AJQWcDZ2lOVOJQ2tq346ok38mtGDBYRBvp3Q+AsuCBnQ==    dependencies:      request "^2.88.2" @@ -7525,17 +7638,17 @@ passport-oauth@^1.0.0:      passport-oauth2 "1.x.x"  passport-saml@^2.0.0: -  version "2.0.5" -  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-2.0.5.tgz#d822225875d0ec640236bf27ad8d5d9436396dea" -  integrity sha512-D9OkTZ2hgRHZZFU3BUPKz7PC/khu9jmJtGCoJOQcn8JKR+AW9H/aj1E32VPu/iQbYMXXxEEt4qMhkCZzK9trzw== +  version "2.1.0" +  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-2.1.0.tgz#c13a472ab7cf89dcfeda7275027c486ede891018" +  integrity sha512-czrh1ymuAOkDi7vIl1WEa2MLHQiqKKZEEOtaf0JUlMS0UaXbqCTj12wnYkZJdkKR/l1EkmmHcudvtCSsAoYpUQ==    dependencies:      debug "^4.3.1"      passport-strategy "*" -    xml-crypto "^2.0.0" -    xml-encryption "1.2.1" +    xml-crypto "^2.1.1" +    xml-encryption "^1.2.3"      xml2js "^0.4.23"      xmlbuilder "^15.1.1" -    xmldom "0.4.x" +    xmldom "0.5.x"  passport-strategy@*, passport-strategy@1.x.x, passport-strategy@^1.0.0:    version "1.0.0" @@ -7623,9 +7736,9 @@ pause@0.0.1:    integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=  pbkdf2@^3.0.3: -  version "3.1.1" -  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" -  integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== +  version "3.1.2" +  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" +  integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==    dependencies:      create-hash "^1.1.2"      create-hmac "^1.1.4" @@ -7634,9 +7747,9 @@ pbkdf2@^3.0.3:      sha.js "^2.4.8"  pdfobject@^2.0.201604172: -  version "2.2.4" -  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.4.tgz#ccb3c191129298a471e9ccb59c88a3ee0b7c7530" -  integrity sha512-r6Rw9CQWsrY6uqmKvlgFNoupmuRbSt9EsG0sZhSAy3cIk4WgOXyAVmebFSlLhqj6gA5NIEXL3lSEbwOOYfdUvw== +  version "2.2.5" +  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.5.tgz#3e79dae8925a68f60c79423f56737bfd2d7e8a0b" +  integrity sha512-B301nc24w02BMqrJoDOUBGRfHBqGtLztsdUyyhYsZaxD3R1DyNKtkDcilo+A4FYSW82k/LXAiXVREkYoqU2G4g==  peek-readable@^3.1.3:    version "3.1.3" @@ -7648,10 +7761,10 @@ performance-now@^2.1.0:    resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"    integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pg-connection-string@^2.4.0: -  version "2.4.0" -  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" -  integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== +pg-connection-string@^2.5.0: +  version "2.5.0" +  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" +  integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==  pg-hstore@^2.3.3:    version "2.3.3" @@ -7665,15 +7778,15 @@ pg-int8@1.0.1:    resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"    integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.2.2: -  version "3.2.2" -  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz#a560e433443ed4ad946b84d774b3f22452694dff" -  integrity sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA== +pg-pool@^3.3.0: +  version "3.3.0" +  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.3.0.tgz#12d5c7f65ea18a6e99ca9811bd18129071e562fc" +  integrity sha512-0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg== -pg-protocol@^1.4.0: -  version "1.4.0" -  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.4.0.tgz#43a71a92f6fe3ac559952555aa3335c8cb4908be" -  integrity sha512-El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA== +pg-protocol@^1.5.0: +  version "1.5.0" +  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" +  integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==  pg-types@^2.1.0:    version "2.2.0" @@ -7687,15 +7800,15 @@ pg-types@^2.1.0:      postgres-interval "^1.1.0"  pg@^8.2.1: -  version "8.5.1" -  resolved "https://registry.yarnpkg.com/pg/-/pg-8.5.1.tgz#34dcb15f6db4a29c702bf5031ef2e1e25a06a120" -  integrity sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw== +  version "8.6.0" +  resolved "https://registry.yarnpkg.com/pg/-/pg-8.6.0.tgz#e222296b0b079b280cce106ea991703335487db2" +  integrity sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ==    dependencies:      buffer-writer "2.0.0"      packet-reader "1.0.0" -    pg-connection-string "^2.4.0" -    pg-pool "^3.2.2" -    pg-protocol "^1.4.0" +    pg-connection-string "^2.5.0" +    pg-pool "^3.3.0" +    pg-protocol "^1.5.0"      pg-types "^2.1.0"      pgpass "1.x" @@ -7706,10 +7819,10 @@ pgpass@1.x:    dependencies:      split2 "^3.1.1" -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: -  version "2.2.2" -  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" -  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +  version "2.2.3" +  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" +  integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==  pify@^2.0.0:    version "2.3.0" @@ -7752,6 +7865,11 @@ pkginfo@^0.2.3:    resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8"    integrity sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg= +pkginfo@^0.4.1: +  version "0.4.1" +  resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" +  integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= +  please-upgrade-node@^3.2.0:    version "3.2.0"    resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -7764,11 +7882,6 @@ pluralize@^8.0.0:    resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"    integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pop-iterate@^1.0.1: -  version "1.0.1" -  resolved "https://registry.yarnpkg.com/pop-iterate/-/pop-iterate-1.0.1.tgz#ceacfdab4abf353d7a0f2aaa2c1fc7b3f9413ba3" -  integrity sha1-zqz9q0q/NT16DyqqLB/Hs/lBO6M= -  posix-character-classes@^0.1.0:    version "0.1.1"    resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -8040,21 +8153,18 @@ postcss-selector-parser@^3.0.0:      uniq "^1.0.1"  postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: -  version "6.0.4" -  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" -  integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== +  version "6.0.5" +  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4" +  integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==    dependencies:      cssesc "^3.0.0" -    indexes-of "^1.0.1" -    uniq "^1.0.1"      util-deprecate "^1.0.2" -postcss-svgo@^4.0.2: -  version "4.0.2" -  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" -  integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== +postcss-svgo@^4.0.3: +  version "4.0.3" +  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" +  integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==    dependencies: -    is-svg "^3.0.0"      postcss "^7.0.0"      postcss-value-parser "^3.0.0"      svgo "^1.0.0" @@ -8087,13 +8197,13 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27:      source-map "^0.6.1"      supports-color "^6.1.0" -postcss@^8.2.8: -  version "8.2.8" -  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.8.tgz#0b90f9382efda424c4f0f69a2ead6f6830d08ece" -  integrity sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw== +postcss@^8.2.10: +  version "8.2.12" +  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.12.tgz#81248a1a87e0f575cc594a99a08207fd1c4addc4" +  integrity sha512-BJnGT5+0q2tzvs6oQfnY2NpEJ7rIXNfBnZtQOKCIsweeWXBXeDd5k31UgTdS3d/c02ouspufn37mTaHWkJyzMQ==    dependencies:      colorette "^1.2.2" -    nanoid "^3.1.20" +    nanoid "^3.1.22"      source-map "^0.6.1"  postgres-array@~2.0.0: @@ -8178,6 +8288,25 @@ progress@^2.0.0:    resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"    integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +prom-client@^13.1.0: +  version "13.1.0" +  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-13.1.0.tgz#1185caffd8691e28d32e373972e662964e3dba45" +  integrity sha512-jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng== +  dependencies: +    tdigest "^0.1.1" + +prometheus-api-metrics@^3.2.0: +  version "3.2.0" +  resolved "https://registry.yarnpkg.com/prometheus-api-metrics/-/prometheus-api-metrics-3.2.0.tgz#3af90989271abb55b7e0405bdfcb161f403a361c" +  integrity sha512-JekPhtIBLGX8HxD2EndvBsLU6ZQ1JVVqyHWVfm5CposUOqgBHXnUVFW6x5Ux2gykpdej/5LLM3dU9V8Ma7GfkA== +  dependencies: +    "@types/express" "^4.17.8" +    "@types/express-serve-static-core" "^4.17.12" +    "@types/koa" "^2.11.4" +    debug "^3.2.6" +    lodash.get "^4.4.2" +    pkginfo "^0.4.1" +  promise-inflight@^1.0.1:    version "1.0.1"    resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -8263,15 +8392,6 @@ q@^1.1.2, q@^1.5.1:    resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"    integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -q@^2.0.3: -  version "2.0.3" -  resolved "https://registry.yarnpkg.com/q/-/q-2.0.3.tgz#75b8db0255a1a5af82f58c3f3aaa1efec7d0d134" -  integrity sha1-dbjbAlWhpa+C9Yw/Oqoe/sfQ0TQ= -  dependencies: -    asap "^2.0.0" -    pop-iterate "^1.0.1" -    weak-map "^1.0.5" -  qs@2.3.3:    version "2.3.3"    resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" @@ -8298,9 +8418,9 @@ querystring@0.2.0:    integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=  queue-microtask@^1.2.2: -  version "1.2.2" -  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" -  integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== +  version "1.2.3" +  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" +  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==  random-bytes@~1.0.0:    version "1.0.0" @@ -9104,9 +9224,9 @@ renderkid@^2.0.4:      strip-ansi "^3.0.0"  repeat-element@^1.1.2: -  version "1.1.3" -  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" -  integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== +  version "1.1.4" +  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" +  integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==  repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.6.1:    version "1.6.1" @@ -9120,7 +9240,7 @@ repeating@^2.0.0:    dependencies:      is-finite "^1.0.0" -request@2.x, "request@>= 2.52.0", request@^2.83.0, request@^2.86.0, request@^2.87.0, request@^2.88.0, request@^2.88.2: +request@2.x, "request@>= 2.52.0", request@^2.86.0, request@^2.87.0, request@^2.88.0, request@^2.88.2:    version "2.88.2"    resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"    integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -9366,10 +9486,10 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0:    resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"    integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.4: -  version "7.3.4" -  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" -  integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== +semver@^7.2.1, semver@^7.3.5: +  version "7.3.5" +  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" +  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==    dependencies:      lru-cache "^6.0.0" @@ -9408,9 +9528,9 @@ sequelize-pool@^2.3.0:    integrity sha512-Ibz08vnXvkZ8LJTiUOxRcj1Ckdn7qafNZ2t59jYHMX1VIebTAOYefWdRYFt6z6+hy52WGthAHAoLc9hvk3onqA==  sequelize@^5.21.1: -  version "5.22.3" -  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.3.tgz#7e7a92ddd355d883c9eb11cdb106d874d0d2636f" -  integrity sha512-+nxf4TzdrB+PRmoWhR05TP9ukLAurK7qtKcIFv5Vhxm5Z9v+d2PcTT6Ea3YAoIQVkZ47QlT9XWAIUevMT/3l8Q== +  version "5.22.4" +  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.4.tgz#4dbd8a1a735e98150880d43a95d45e9f46d151fa" +  integrity sha512-xFQQ38HPg7EyDRDA+NdzMSRWbo9m6Z/RxpjnkBl3ggyQG+jRrup48x0jaw4Ox42h56wFnXOBC2NZOkTJfZeWCw==    dependencies:      bluebird "^3.5.0"      cls-bluebird "^2.1.0" @@ -9787,13 +9907,13 @@ sshpk@^1.7.0:      tweetnacl "~0.14.0"  ssri@^6.0.1: -  version "6.0.1" -  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" -  integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== +  version "6.0.2" +  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" +  integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==    dependencies:      figgy-pudding "^3.5.1" -ssri@^8.0.0: +ssri@^8.0.1:    version "8.0.1"    resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"    integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== @@ -10080,12 +10200,17 @@ svgo@^1.0.0:      util.promisify "~1.0.0"  table@^6.0.4: -  version "6.0.7" -  resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" -  integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== +  version "6.3.2" +  resolved "https://registry.yarnpkg.com/table/-/table-6.3.2.tgz#afa86bee5cfe305f9328f89bb3e5454132cdea28" +  integrity sha512-I9/Ca6Huf2oxFag7crD0DhA+arIdfLtWunSn0NIXSzjtUlDgIBGVZY7SsMkNPNT3Psd/z4gza0nuEpmra9eRbg==    dependencies: -    ajv "^7.0.2" -    lodash "^4.17.20" +    ajv "^8.0.1" +    is-boolean-object "^1.1.0" +    is-number-object "^1.0.4" +    is-string "^1.0.5" +    lodash.clonedeep "^4.5.0" +    lodash.flatten "^4.4.0" +    lodash.truncate "^4.4.2"      slice-ansi "^4.0.0"      string-width "^4.2.0" @@ -10139,6 +10264,13 @@ tar@^6.0.2:      mkdirp "^1.0.3"      yallist "^4.0.0" +tdigest@^0.1.1: +  version "0.1.1" +  resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" +  integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= +  dependencies: +    bintrees "1.0.1" +  tedious@^6.6.0:    version "6.7.0"    resolved "https://registry.yarnpkg.com/tedious/-/tedious-6.7.0.tgz#ad02365f16f9e0416b216e13d3f83c53addd42ca" @@ -10344,15 +10476,15 @@ tsconfig-paths@^3.9.0:      minimist "^1.2.0"      strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.2: +tslib@^1.10.0, tslib@^1.9.2:    version "1.14.1"    resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"    integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==  tslib@^2.0.0, tslib@^2.0.3: -  version "2.1.0" -  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" -  integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +  version "2.2.0" +  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" +  integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==  tty-browserify@0.0.0:    version "0.0.0" @@ -10426,9 +10558,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:    integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==  uglify-js@^3.1.4, uglify-js@^3.5.1: -  version "3.13.1" -  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.1.tgz#2749d4b8b5b7d67460b4a418023ff73c3fefa60a" -  integrity sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw== +  version "3.13.4" +  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" +  integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==  uid-safe@~2.1.5:    version "2.1.5" @@ -10450,14 +10582,14 @@ umzug@^2.3.0:      bluebird "^3.7.2"  unbox-primitive@^1.0.0: -  version "1.0.0" -  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" -  integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== +  version "1.0.1" +  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" +  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==    dependencies:      function-bind "^1.1.1" -    has-bigints "^1.0.0" -    has-symbols "^1.0.0" -    which-boxed-primitive "^1.0.1" +    has-bigints "^1.0.1" +    has-symbols "^1.0.2" +    which-boxed-primitive "^1.0.2"  underscore@1.11.x:    version "1.11.0" @@ -10465,9 +10597,9 @@ underscore@1.11.x:    integrity sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==  "underscore@>= 1.3.1", underscore@^1.7.0: -  version "1.12.0" -  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.0.tgz#4814940551fc80587cef7840d1ebb0f16453be97" -  integrity sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ== +  version "1.13.1" +  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" +  integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==  underscore@~1.6.0:    version "1.6.0" @@ -10494,9 +10626,9 @@ unified-args@^8.0.0:      unified-engine "^8.0.0"  unified-engine@^8.0.0: -  version "8.0.0" -  resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.0.0.tgz#e3996ff6eaecc6ca3408af92b70e25691192d17d" -  integrity sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA== +  version "8.1.0" +  resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.1.0.tgz#a846e11705fb8589d1250cd27500b56021d8a3e2" +  integrity sha512-ptXTWUf9HZ2L9xto7tre+hSdSN7M9S0rypUpMAcFhiDYjrXLrND4If+8AZOtPFySKI/Zhfxf7GVAR34BqixDUA==    dependencies:      concat-stream "^2.0.0"      debug "^4.0.0" @@ -10793,9 +10925,9 @@ validator@^10.11.0:    integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==  validator@^13.0.0: -  version "13.5.2" -  resolved "https://registry.yarnpkg.com/validator/-/validator-13.5.2.tgz#c97ae63ed4224999fb6f42c91eaca9567fe69a46" -  integrity sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ== +  version "13.6.0" +  resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" +  integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==  validator@~9.4.1:    version "9.4.1" @@ -10911,25 +11043,20 @@ watchpack@^1.7.4:      chokidar "^3.4.1"      watchpack-chokidar2 "^2.0.1" -weak-map@^1.0.5: -  version "1.0.5" -  resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.5.tgz#79691584d98607f5070bd3b70a40e6bb22e401eb" -  integrity sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes= -  webfontloader@~1.6.x:    version "1.6.28"    resolved "https://registry.yarnpkg.com/webfontloader/-/webfontloader-1.6.28.tgz#db786129253cb6e8eae54c2fb05f870af6675bae"    integrity sha1-23hhKSU8tujq5UwvsF+HCvZnW64= -webpack-cli@4.5.0: -  version "4.5.0" -  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" -  integrity sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q== +webpack-cli@4.6.0: +  version "4.6.0" +  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.6.0.tgz#27ae86bfaec0cf393fcfd58abdc5a229ad32fd16" +  integrity sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==    dependencies:      "@discoveryjs/json-ext" "^0.5.0" -    "@webpack-cli/configtest" "^1.0.1" -    "@webpack-cli/info" "^1.2.2" -    "@webpack-cli/serve" "^1.3.0" +    "@webpack-cli/configtest" "^1.0.2" +    "@webpack-cli/info" "^1.2.3" +    "@webpack-cli/serve" "^1.3.1"      colorette "^1.2.1"      commander "^7.0.0"      enquirer "^2.3.6" @@ -10986,7 +11113,7 @@ webpack@4.46.0:      watchpack "^1.7.4"      webpack-sources "^1.4.1" -which-boxed-primitive@^1.0.1: +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2:    version "1.0.2"    resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"    integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -11120,32 +11247,32 @@ wrappy@1:    resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"    integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@^7.0.0, ws@~7.4.2: -  version "7.4.4" -  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" -  integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== +ws@^7.4.4, ws@~7.4.2: +  version "7.4.5" +  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" +  integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==  wurl@^2.5.3:    version "2.5.4"    resolved "https://registry.yarnpkg.com/wurl/-/wurl-2.5.4.tgz#6af35a6c623296c4a0c607c4651d01b8f4e3fdec"    integrity sha512-Vuo550m5YbqRcM/69zz3jVNsCUvFTWLRYQcYvnqNWQ4d0Bjg7aoaofbcsPTe4rM9A2/4xjd8uIf9viIUV9EMXQ== -xml-crypto@^2.0.0: -  version "2.0.0" -  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.0.0.tgz#54cd268ad9d31930afcf7092cbb664258ca9e826" -  integrity sha512-/a04qr7RpONRZHOxROZ6iIHItdsQQjN3sj8lJkYDDss8tAkEaAs0VrFjb3tlhmS5snQru5lTs9/5ISSMdPDHlg== +xml-crypto@^2.1.1: +  version "2.1.2" +  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.2.tgz#501506d42e466f6cd908c5a03182217231b4e4b8" +  integrity sha512-DBhZXtBjENtLwJmeJhLUBwUm9YWNjCRvAx6ESP4VJyM9PDuKqZu2Fp5Y5HKqcdJT7vV7eI25Z4UBMezji6QloQ==    dependencies: -    xmldom "0.1.27" -    xpath "0.0.27" +    xmldom "^0.6.0" +    xpath "0.0.32" -xml-encryption@1.2.1: -  version "1.2.1" -  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.1.tgz#e6d18817c4309fd07ca7793cca93c3fd06745baa" -  integrity sha512-hn5w3l5p2+nGjlmM0CAhMChDzVGhW+M37jH35Z+GJIipXbn9PUlAIRZ6I5Wm7ynlqZjFrMAr83d/CIp9VZJMTA== +xml-encryption@^1.2.3: +  version "1.2.3" +  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.3.tgz#fc8b740a3e0635d62aede05c93f8ddb02f0bd7c9" +  integrity sha512-oVZIicsZM1VobJ5Hxxgh2ovglIY2ZuXFTeZHmJSV7hABvgkD20PSy4G+qwRToQCkagymS1zJU2XV4wjkoCS9mQ==    dependencies:      escape-html "^1.0.3"      node-forge "^0.10.0" -    xmldom "~0.1.15" +    xmldom "~0.5.0"      xpath "0.0.27"  xml2js@0.2.8: @@ -11191,26 +11318,21 @@ xmlbuilder@~11.0.0:    resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"    integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xmldom@0.1.27: -  version "0.1.27" -  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" -  integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= - -xmldom@0.1.x, xmldom@~0.1.15: +xmldom@0.1.x:    version "0.1.31"    resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"    integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== -xmldom@0.4.x: -  version "0.4.0" -  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.4.0.tgz#8771e482a333af44587e30ce026f0998c23f3830" -  integrity sha512-2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA== - -"xmldom@>= 0.1.x": +xmldom@0.5.x, xmldom@~0.5.0:    version "0.5.0"    resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"    integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== +"xmldom@>= 0.1.x", xmldom@^0.6.0: +  version "0.6.0" +  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f" +  integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg== +  xmlhttprequest-ssl@~1.5.4:    version "1.5.5"    resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" @@ -11231,6 +11353,11 @@ xpath@0.0.27:    resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.27.tgz#dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92"    integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ== +xpath@0.0.32: +  version "0.0.32" +  resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af" +  integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw== +  xss@^1.0.3:    version "1.0.8"    resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz#32feb87feb74b3dcd3d404b7a68ababf10700535" @@ -11252,14 +11379,14 @@ xtraverse@0.1.x:      xmldom "0.1.x"  y18n@^4.0.0: -  version "4.0.1" -  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" -  integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +  version "4.0.3" +  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" +  integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==  y18n@^5.0.5: -  version "5.0.5" -  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" -  integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== +  version "5.0.8" +  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" +  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==  yallist@^2.1.2:    version "2.1.2"  | 
