├── .circleci └── config.yml ├── .gitignore ├── .prettierrc ├── .snyk ├── LICENSE ├── README.md ├── config └── dist.js ├── microstat.service.dist ├── package.json ├── src ├── configValidator.ts ├── constants.ts └── microstat.ts ├── tsconfig.json └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # Javascript Node CircleCI 2.0 configuration file 2 | # 3 | # Check https://circleci.com/docs/2.0/language-javascript/ for more details 4 | # 5 | version: 2.1 6 | jobs: 7 | build: 8 | docker: 9 | # specify the version you desire here 10 | - image: cimg/node:16.20.1 11 | 12 | # Specify service dependencies here if necessary 13 | # CircleCI maintains a library of pre-built images 14 | # documented at https://circleci.com/docs/2.0/circleci-images/ 15 | # - image: circleci/mongo:3.4.4 16 | 17 | working_directory: ~/repo 18 | 19 | steps: 20 | - checkout 21 | 22 | # Download and cache dependencies 23 | - restore_cache: 24 | keys: 25 | - v1-dependencies-{{ checksum "package.json" }} 26 | # fallback to using the latest cache if no exact match is found 27 | - v1-dependencies- 28 | 29 | - run: npm install 30 | 31 | - save_cache: 32 | paths: 33 | - node_modules 34 | key: v1-dependencies-{{ checksum "package.json" }} 35 | 36 | # run tests! 37 | - run: npm run lint 38 | 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | config/local.js 2 | dist 3 | node_modules 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "avoid", 3 | "printWidth": 120, 4 | "singleQuote": true 5 | } 6 | -------------------------------------------------------------------------------- /.snyk: -------------------------------------------------------------------------------- 1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. 2 | version: v1.14.1 3 | ignore: {} 4 | # patches apply the minimum changes required to fix a vulnerability 5 | patch: 6 | SNYK-JS-LODASH-567746: 7 | - send-webmention > get-webmention-url > cheerio > lodash: 8 | patched: '2020-05-01T02:17:19.353Z' 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Joshua Dick 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # microstat 2 | 3 | A self-hosted Micropub endpoint for statically-generated microblogs. 📝⚡️ 4 | 5 | ## What Is This Thing? 6 | 7 | microstat lets you publish [Markdown](https://en.wikipedia.org/wiki/Markdown) posts to a statically-generated [microblog](https://en.wikipedia.org/wiki/Microblogging) via [Micropub](https://indieweb.org/Micropub), with automatically-sent [Webmentions](https://indieweb.org/Webmention) and integration with the [micro.blog service](https://micro.blog). 8 | 9 | This enables you to post to your static microblog entirely using the web (for example, using a web-based Micropub client like [Quill](https://quill.p3k.io)). 10 | 11 | Here's how it works: 12 | 13 | - A running microstat server acts as a [Micropub](https://indieweb.org/Micropub) endpoint 14 | - When it receives a Micropub post, it writes a Markdown file to a location you configure 15 | - Once the Markdown file is written, it runs a command you configure (that would trigger something like [Jekyll](https://jekyllrb.com/) or [Hugo](https://gohugo.io/) to build and publish your microblog) 16 | - Once your microblog is updated, it sends a Webmention if your post is a reply to someone else's post 17 | - Will attempt to automatically discover the Webmention endpoint, or will use [micro.blog](https://micro.blog)'s Webmention endpoint if you're replying to a micro.blog post 18 | - If you use micro.blog, optionally ping micro.blog with your microblog's RSS/Atom/JSON feed so your posts are instantly mirrored there 19 | 20 | ## Get Going 21 | 22 | microstat requires [Node.js](https://nodejs.org) v12 or newer. Once you've installed Node.js: 23 | 24 | ```bash 25 | $ git clone https://github.com/joshdick/microstat.git 26 | $ cd microstat 27 | $ npm install 28 | $ cp config/dist.js config/local.js 29 | # Edit `config/local.js` and change the values to fit your site as described by the comments above each value 30 | $ npm start 31 | ``` 32 | 33 | You can manage and start microstat as a [systemd](https://en.wikipedia.org/wiki/Systemd) service or using a tool like [nodemon](https://nodemon.io). 34 | 35 | Note that microstat doesn't need to run on the same port, or even the same server, as your microblog. You could directly advertise your microstat server as your site's Micropub endpoint, or you can advertise a proxy to it. 36 | 37 | Here's how I proxy to microstat on [my microblog](https://joshdick.net/microblog): 38 | 39 | 1. Advertise my site's Micropub endpoint by including the following in its HTML: 40 | 41 | ```html 42 | 43 | ``` 44 | 45 | 2. Configure [nginx](https://nginx.org) to proxy requests sent to the advertised Micropub endpoint to a microstat server that's running on an entirely different machine/port (at `https://example.com:3141`): 46 | 47 | ```nginx 48 | location /micropub { 49 | proxy_pass https://example.com:3141; 50 | } 51 | ``` 52 | 53 | ## Contributing 54 | 55 | Issues and pull requests are welcome! 🙂 56 | -------------------------------------------------------------------------------- /config/dist.js: -------------------------------------------------------------------------------- 1 | const moment = require('moment'); 2 | const raw = require('config/raw').raw; 3 | 4 | // ***Copy this file to `config/local.js` and change the copy to fit your site and needs.*** 5 | 6 | // Override the implementation of this function to fit your needs. 7 | // See `posts.generators.filename` below for more details. 8 | const generatePostFilename = (timestamp, slug) => { 9 | const suffix = slug ? `_${slug}` : ''; 10 | const postDate = moment(timestamp).format('YYYY/MM/DD_HH.mm.ss'); 11 | return `${postDate}${suffix}.md`; 12 | }; 13 | 14 | // Override the implementation of this function to fit your needs. 15 | // See `posts.generators.url` below for more details. 16 | const generatePostUrl = (timestamp, slug) => { 17 | const filename = generatePostFilename(timestamp, slug); 18 | return `https://example.com/microblog/${filename.replace(/\.md$/, '.html')}`; 19 | }; 20 | 21 | // Override the implementation of this function to fit your needs. 22 | // see `media.generators.filenamePrefix` below for more details. 23 | const generateMediaFilenamePrefix = (timestamp, slug) => { 24 | return 'static/'; 25 | }; 26 | 27 | // Override the implementation of this function to fit your needs. 28 | // see `media.generators.filenameSuffix` below for more details. 29 | const generateMediaFilenameSuffix = () => { 30 | return 'microblog_assets/:year/:month/:slug_:filesslug'; 31 | }; 32 | 33 | module.exports = { 34 | app: { 35 | //Which local TCP port the server should listen on. 36 | listenPort: 8080, 37 | 38 | // URL of an RSS/Atom/JSON feed that will contain Microblog posts after `app.publishCommand` runs. 39 | // If set, will ping [micro.blog](https://micro.blog) with that feed, informing micro.blog to check for new posts. 40 | // If you don't use https://micro.blog, leave this value empty. 41 | microblogPingFeedURL: '', 42 | 43 | // Local path to a script that will consume written Microblog posts 44 | // (Markdown files) and media files written to `app.siteRoot` (below) and publish them to the Internet, 45 | // commit changes to your site to Git, etc. 46 | publishCommand: '/path/to/a/script', 47 | }, 48 | site: { 49 | indieauth: { 50 | // Your IndieAuth-enabled website; will be used as the IndieAuth identity. 51 | identity: 'https://example.com', 52 | 53 | // IndieAuth token endpoint. 54 | // If your website includes a `` tag, duplicate its value here. 55 | tokenEndpoint: 'https://tokens.indieauth.com/token', 56 | }, 57 | 58 | // Local path to the source of your statically-generated site. 59 | // All local paths configured in the `posts` and `media` sections below will be treated as relative to this path. 60 | root: '/path/to/your/site', 61 | }, 62 | posts: { 63 | generators: { 64 | // Function that generates post URLs that correspond to where 65 | // posts will appear on your site after `app.publishCommand` runs. 66 | url: raw(generatePostUrl), 67 | 68 | // Function that generates a unique filename for each post, relative to `site.root`. 69 | // Directories should be separated by forward slashes 70 | // and will be automatically created if they don't exist in the fileystem. 71 | filename: raw(generatePostFilename), 72 | }, 73 | 74 | // If nonempty, will include the configured Jekyll-style layout name in each post. 75 | layoutName: '', 76 | 77 | tags: { 78 | // The key that tag values will be assigned to in the generated front matter of each post. 79 | key: 'tags', 80 | 81 | // Controls the format of the tags list in the generated front matter of each post. 82 | // Valid values are `space_delimited` (Jekyll style) or `yaml_list` (Hugo style). 83 | style: 'space_delimited', 84 | }, 85 | }, 86 | media: { 87 | // Note: Media files will be written to disk at a location which is the 88 | // combination of `media.generators.filenamePrefix` and `media.generators.filenameSuffix`, in that order. 89 | // Directories in generated outputs should be separated by forward slashes, 90 | // and will be automatically created if they don't exist in the fileystem. 91 | generators: { 92 | // Function that generates a path relative to `site.root`, 93 | // which will have `filenameSuffix` appended when media files are written to disk. 94 | // Can return empty string ('') if you want the location of files on disk 95 | // to exactly match the filenames in the front matter of generated posts. 96 | filenamePrefix: raw(generateMediaFilenamePrefix), 97 | 98 | // Function that generates a unique filename for each media file, relative to `media.generators.filenamePrefix`. 99 | // Can contain any tokens used in Jekyll permalinks, even if you don't use Jekyll: https://jekyllrb.com/docs/permalinks/ 100 | // Generated output should not contain a file extension, but rather, should always contain the string `:filesslug`. 101 | filenameSuffix: raw(generateMediaFilenameSuffix), 102 | }, 103 | }, 104 | }; 105 | -------------------------------------------------------------------------------- /microstat.service.dist: -------------------------------------------------------------------------------- 1 | # Sample systemd unit file. 2 | 3 | [Unit] 4 | Description=microstat 5 | 6 | [Service] 7 | ExecStart=npm start 8 | WorkingDirectory=/path/to/microstat 9 | LimitNOFILE=4096 10 | IgnoreSIGPIPE=false 11 | KillMode=control-group 12 | User=johnsmith 13 | Restart=always 14 | RestartSec=3 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "microstat", 3 | "version": "2.0.0", 4 | "description": "A Micropub endpoint for statically-generated microblogs.", 5 | "author": "Josh Dick ", 6 | "license": "MIT", 7 | "keywords": [ 8 | "markdown", 9 | "microblog", 10 | "micro.blog", 11 | "micropub", 12 | "static" 13 | ], 14 | "engines": { 15 | "node": ">= 16.0.0" 16 | }, 17 | "main": "dist/microstat.js", 18 | "scripts": { 19 | "build": "tsc", 20 | "lint": "eslint 'src/**/*.{j,t}s' && prettier --check 'src/**/*.{js,ts,json,md}' '*.{json,md}'", 21 | "lint:fix": "eslint --fix 'src/**/*.{j,t}s' && prettier --write 'src/**/*.{js,ts,json,md}' '*.{json,md}'", 22 | "start": "yarn build && node dist/microstat.js", 23 | "start:dev": "tsc-watch --onSuccess 'node dist/microstat.js'", 24 | "test": "echo \"Error: no test specified\" && exit 1" 25 | }, 26 | "dependencies": { 27 | "axios": "^1.4.0", 28 | "config": "^3.3.9", 29 | "express": "4.18.2", 30 | "format-microformat": "0.11.1", 31 | "micropub-express": "0.9.1", 32 | "minilog": "3.1.0", 33 | "mkdirp": "3.0.1", 34 | "moment": "2.29.4", 35 | "send-webmention": "2.0.0" 36 | }, 37 | "devDependencies": { 38 | "@types/minilog": "^2.0.29", 39 | "@types/node": "^16", 40 | "@typescript-eslint/eslint-plugin": "^6.1.0", 41 | "@typescript-eslint/parser": "^6.1.0", 42 | "eslint": "^8.45.0", 43 | "husky": "^8.0.3", 44 | "lint-staged": "^13.2.3", 45 | "prettier": "^3.0.0", 46 | "tsc-watch": "^6.0.4", 47 | "typescript": "^5.1.6" 48 | }, 49 | "repository": { 50 | "type": "git", 51 | "url": "https://github.com/joshdick/microstat.git" 52 | }, 53 | "eslintConfig": { 54 | "root": true, 55 | "parser": "@typescript-eslint/parser", 56 | "plugins": [ 57 | "@typescript-eslint" 58 | ], 59 | "extends": [ 60 | "eslint:recommended", 61 | "plugin:@typescript-eslint/eslint-recommended", 62 | "plugin:@typescript-eslint/recommended" 63 | ], 64 | "ignorePatterns": [ 65 | "dist/", 66 | "node_modules/" 67 | ] 68 | }, 69 | "husky": { 70 | "hooks": { 71 | "pre-commit": "lint-staged && yarn check --integrity" 72 | } 73 | }, 74 | "lint-staged": { 75 | "src/**/*.{js,ts,json,md}": [ 76 | "prettier --check" 77 | ], 78 | "./*.{json,md}": [ 79 | "prettier --check" 80 | ], 81 | "src/**/*.{j,t}s": [ 82 | "eslint" 83 | ] 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/configValidator.ts: -------------------------------------------------------------------------------- 1 | import { dirname as pathDirname, resolve as pathResolve } from 'path'; 2 | import { existsSync } from 'fs'; 3 | import { URL } from 'url'; 4 | 5 | import { POST_TAG_STYLES } from './constants'; 6 | 7 | export default class ConfigValidator { 8 | private readonly log: Minilog; 9 | private readonly config; 10 | 11 | constructor(log: Minilog) { 12 | this.log = log; 13 | 14 | // `..` will either be the 'src' or 'dist' folder depending on how microstat is started. 15 | const CONFIG_DIRECTORY_PATH = pathResolve(pathDirname(__filename), '../config'); 16 | const LOCAL_CONFIG_PATH = pathResolve(CONFIG_DIRECTORY_PATH, 'local.js'); 17 | if (!existsSync(LOCAL_CONFIG_PATH)) { 18 | this.handleFatalError( 19 | `Couldn't read configuration! 20 | Please copy ${CONFIG_DIRECTORY_PATH}/dist.js to ${LOCAL_CONFIG_PATH} 21 | and modify the values as described in the comments. 22 | `, 23 | ); 24 | } 25 | 26 | // Load after explicitly validating presence of the config file above, 27 | // so our custom error message above will take precedence over `config`'s 28 | const config = require('config'); // eslint-disable-line @typescript-eslint/no-var-requires 29 | this.config = config; 30 | } 31 | 32 | private handleFatalError(error: string): void { 33 | this.log.error(error); 34 | process.exit(1); 35 | } 36 | 37 | private validateURL(param: string, optional = false): void { 38 | const urlError = `Configured \`${param}\` must be a valid URL!`; 39 | if (this.config.has(param)) { 40 | const url = this.config.get(param); 41 | if (optional && !url) return; // Allow empty string 42 | try { 43 | new URL(url); // use constructor for validation as a side effect 44 | } catch (e) { 45 | this.handleFatalError(urlError); 46 | } 47 | } else { 48 | if (!optional) { 49 | this.handleFatalError(urlError); 50 | } 51 | } 52 | } 53 | 54 | private validatePath(param: string): void { 55 | if (!existsSync(this.config.get(param))) { 56 | this.handleFatalError(`Configured \`${param}\` must exist in the filesystem!`); 57 | } 58 | } 59 | 60 | private validateFunction(param: string): void { 61 | if (typeof this.config.get(param) !== 'function') { 62 | this.handleFatalError(`Configured \`${param}\` must be a function!`); 63 | } 64 | } 65 | 66 | private validateString(param: string): void { 67 | if (typeof this.config.get(param) !== 'string') { 68 | this.handleFatalError(`Configured \`${param}\` must be a string!`); 69 | } 70 | } 71 | 72 | private validateAppConfig(): void { 73 | // app.listenPort 74 | const portError = 'Configured `app.listenPort` must be a number between 1 and 65535!'; 75 | const listenPort = this.config.get('app.listenPort'); 76 | if (typeof listenPort !== 'number') { 77 | this.handleFatalError(portError); 78 | } 79 | const parsedListenPort = parseInt(listenPort, 10); 80 | if (parsedListenPort < 1 || parsedListenPort > 65535) { 81 | this.handleFatalError(portError); 82 | } 83 | 84 | // app.microblogPingFeedURL 85 | this.validateURL('app.microblogPingFeedURL', true); 86 | 87 | // app.publishCommand 88 | this.validatePath('app.publishCommand'); 89 | } 90 | 91 | private validateSiteConfig(): void { 92 | // site.indieauth.identity 93 | this.validateURL('site.indieauth.identity'); 94 | 95 | // site.indieauth.tokenEndpoint 96 | this.validateURL('site.indieauth.tokenEndpoint'); 97 | 98 | // site.root 99 | this.validatePath('site.root'); 100 | } 101 | 102 | private validatePostsConfig(): void { 103 | // posts.generators.url 104 | this.validateFunction('posts.generators.url'); 105 | 106 | // posts.generators.filename 107 | this.validateFunction('posts.generators.filename'); 108 | 109 | // posts.layoutName 110 | this.validateString('posts.layoutName'); 111 | 112 | // posts.tags.key 113 | this.validateString('posts.tags.key'); 114 | 115 | // posts.tags.style 116 | const configuredPostTagStyle = this.config.get('posts.tags.style').toLocaleUpperCase(); 117 | if (!POST_TAG_STYLES[configuredPostTagStyle]) { 118 | this.handleFatalError(`Configured \`posts.tags.style\` is invalid! 119 | 120 | Please reconfigure \`posts.tags.style\` to be one of the values specified in \`dist.js\`.`); 121 | } 122 | } 123 | 124 | private validateMediaConfig(): void { 125 | // media.generators.filenamePrefix 126 | this.validateFunction('media.generators.filenamePrefix'); 127 | try { 128 | const generatePrefix = this.config.get('media.generators.filenamePrefix'); 129 | const result = generatePrefix(new Date().getTime(), 'dummy-slug'); 130 | if (typeof result !== 'string') { 131 | // Just trigger the `catch` block below; 132 | // it could also be triggered if the generator itself throws an error. 133 | throw new Error('Wrong output type!'); 134 | } 135 | } catch (error) { 136 | this.handleFatalError( 137 | `Configured \`media.generators.filenamePrefix\` must be a function that generates a string!`, 138 | ); 139 | } 140 | 141 | // media.generators.filenameSuffix 142 | this.validateFunction('media.generators.filenameSuffix'); 143 | try { 144 | const generateSuffix = this.config.get('media.generators.filenameSuffix'); 145 | const result = generateSuffix(); 146 | // The following checks just trigger the `catch` block below; 147 | // it could also be triggered if the generator itself throws an error. 148 | if (typeof result !== 'string') { 149 | throw new Error('Wrong output type!'); 150 | } else if (!result.match(/:filesslug/)) { 151 | throw new Error('Did not contain `:filesslug`!'); 152 | } 153 | } catch (error) { 154 | this.handleFatalError( 155 | `Configured \`media.generators.filenameSuffix\` must be a function that generates a string that contains the substring \`:filesslug\`!`, 156 | ); 157 | } 158 | } 159 | 160 | // Validate configuration. 161 | public validate(): void { 162 | this.validateAppConfig(); 163 | this.validateSiteConfig(); 164 | this.validatePostsConfig(); 165 | this.validateMediaConfig(); 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export const POST_TAG_STYLES = Object.freeze({ 2 | SPACE_DELIMITED: Symbol('tag_style:space_delimited'), 3 | YAML_LIST: Symbol('tag_style:yaml_list'), 4 | }); 5 | -------------------------------------------------------------------------------- /src/microstat.ts: -------------------------------------------------------------------------------- 1 | import { execSync } from 'child_process'; 2 | import { unlink, writeFile } from 'fs'; 3 | import { resolve as pathResolve, dirname as pathDirname } from 'path'; 4 | import * as querystring from 'querystring'; 5 | import { promisify } from 'util'; 6 | 7 | import axios from 'axios'; 8 | import * as express from 'express'; 9 | import * as Minilog from 'minilog'; 10 | const MicropubFormatter = require('format-microformat'); // eslint-disable-line @typescript-eslint/no-var-requires 11 | const micropub = require('micropub-express'); // eslint-disable-line @typescript-eslint/no-var-requires 12 | import { mkdirp } from 'mkdirp'; 13 | const webmention = require('send-webmention'); // eslint-disable-line @typescript-eslint/no-var-requires 14 | 15 | import ConfigValidator from './configValidator'; 16 | import { POST_TAG_STYLES } from './constants'; 17 | 18 | const unlinkAsync = promisify(unlink); 19 | const writeFileAsync = promisify(writeFile); 20 | 21 | const log = Minilog('microstat'); 22 | Minilog.enable(); 23 | 24 | // Prevalidate all configuration; this should allow use of 'config.get' 25 | // anywhere else in this file without causing a fatal error 26 | const configValidator = new ConfigValidator(log); 27 | configValidator.validate(); 28 | 29 | const config = require('config'); // eslint-disable-line @typescript-eslint/no-var-requires 30 | 31 | // --- 32 | 33 | const app = express(); 34 | 35 | const formatter = new MicropubFormatter({ 36 | deriveCategory: false, // don't write categories 37 | layoutName: config.get('posts.layoutName') || false, 38 | filesStyle: config.get('media.generators.filenameSuffix'), 39 | noMarkdown: true, // input is already expected to be in Markdown format 40 | }); 41 | 42 | // Format tags by parsing and reformatting the already-formatted content. 43 | // TODO: This is not ideal since regex replacements may match actual content unintentionally, 44 | // instead of the intended metadata. 45 | // Format using the underlying Micropub document instead? 46 | const postTagsKey = config.get('posts.tags.key'); 47 | const postTagsStyle = POST_TAG_STYLES[config.get('posts.tags.style').toLocaleUpperCase()]; 48 | const formatTags: (formattedContents: string) => string = formattedContents => { 49 | const spaceDelimitedTagRegex = new RegExp(/^tags: (.*)$/gim); 50 | const tagMatch = spaceDelimitedTagRegex.exec(formattedContents); 51 | const hasTags = tagMatch && tagMatch.length === 2; 52 | let result = formattedContents; 53 | 54 | // If there are no tags, we don't have to do anything. 55 | if (hasTags) { 56 | // Replace the post tags key first to prevent trailing whitespace 57 | // from occurring later if POST_TAG_STYLES.YAML_LIST is used 58 | result = result.replace(/^tags: ?/gim, `${postTagsKey}: `); 59 | 60 | // Tags are already SPACE_DELIMITED by default from `format-microformat` 61 | if (postTagsStyle === POST_TAG_STYLES.YAML_LIST) { 62 | const spaceDelimitedTags = tagMatch[1]; 63 | const tags = spaceDelimitedTags.split(' '); 64 | const yamlTags = tags.map(tag => `- ${tag}`).join('\n'); 65 | result = formattedContents.replace(spaceDelimitedTagRegex, `${postTagsKey}:\n${yamlTags}`); 66 | } 67 | } 68 | 69 | return result; 70 | }; 71 | 72 | const isMicroblogReply: (properties: { content: string[] }) => boolean = properties => { 73 | const content = properties.content; 74 | return content.some(subContent => subContent.match(/^\[@.*\]\(https?:\/\/micro\.blog\/.*\)/)); 75 | }; 76 | 77 | const mediaFilenamePrefixGenerator = config.get('media.generators.filenamePrefix'); 78 | const microblogPingFeedURL = config.has('app.microblogPingFeedURL') && config.get('app.microblogPingFeedURL'); 79 | const postFilenameGenerator = config.get('posts.generators.filename'); 80 | const postUrlGenerator = config.get('posts.generators.url'); 81 | const publishCommand = config.get('app.publishCommand'); 82 | const siteRoot = config.get('site.root'); 83 | 84 | app.use( 85 | '/micropub', 86 | micropub({ 87 | tokenReference: { 88 | me: config.get('site.indieauth.identity'), 89 | endpoint: config.get('site.indieauth.tokenEndpoint'), 90 | }, 91 | 92 | userAgent: 'microstat/1.0.0 (https://github.com/joshdick/microstat)', 93 | 94 | handler: async (micropubDocument /*, req */) => { 95 | // TODO: Inspect all [0] index references in this handler; 96 | // process multiple elements instead of just the first element as appropriate? 97 | 98 | const preFormatted = await formatter.preFormat(micropubDocument); 99 | 100 | if (!preFormatted.preFormatted) throw new Error('Received an invalid Micropub request.'); 101 | 102 | const type = preFormatted.type[0]; 103 | 104 | if (type !== 'h-entry') throw new Error(`Can't handle micropub document type [${type}].`); 105 | 106 | const { properties, files } = preFormatted; 107 | 108 | const published = properties.published[0]; 109 | const slug = properties.slug[0]; 110 | 111 | const fileName = postFilenameGenerator(published, slug); 112 | const postUrl = postUrlGenerator(published, slug); 113 | 114 | let contents = await formatter.format(preFormatted); 115 | contents = formatTags(contents); 116 | 117 | // Write post contents to disk 118 | const postAbsolutePath = pathResolve(siteRoot, fileName); 119 | await mkdirp(pathDirname(postAbsolutePath)); 120 | await writeFileAsync(postAbsolutePath, contents); 121 | 122 | // Write media files to disk 123 | const mediaAbsolutePaths = []; // Used for cleanup later if a problem happpens 124 | if (files) { 125 | const mediaPathPrefix = pathResolve(siteRoot, mediaFilenamePrefixGenerator(published, slug)); 126 | for (const file of files) { 127 | // `file.filename` is the rendered output of `media.generators.filenameSuffix`. 128 | const mediaAbsolutePath = pathResolve(mediaPathPrefix, file.filename); 129 | // This `mkdirp()` is probably redundant after the first iteration through the loop, 130 | // but it may need to happen multiple times if different files have different path suffixes 131 | await mkdirp(pathDirname(mediaAbsolutePath)); 132 | await writeFileAsync(mediaAbsolutePath, file.buffer); 133 | mediaAbsolutePaths.push(mediaAbsolutePath); 134 | } 135 | } 136 | 137 | try { 138 | log.log('Publishing post...'); 139 | execSync(publishCommand.replace(' ', '\\ '), { 140 | cwd: pathDirname(publishCommand), 141 | }); 142 | } catch (publishError) { 143 | log.error('Error publishing post!', publishError); 144 | 145 | try { 146 | // Attempt to clean up the unpublished post to prevent duplicate posts 147 | // from being published if reattempts are made 148 | log.log('Cleaning up unpublished post...'); 149 | await unlinkAsync(postAbsolutePath); 150 | log.log('Cleaning up unpublished media...'); 151 | for (const mediaAbsolutePath of mediaAbsolutePaths) { 152 | await unlinkAsync(mediaAbsolutePath); 153 | } 154 | log.log('Done cleaning up.'); 155 | } catch (cleanupError) { 156 | log.error("Couldn't clean up unpublished post!", cleanupError); 157 | } 158 | 159 | // Rethrow fatally 160 | throw publishError; 161 | } 162 | 163 | const replyUrls = properties['in-reply-to']; 164 | if (replyUrls) { 165 | for (const replyUrl of replyUrls) { 166 | log.log(`Post is a reply to [${replyUrl}]; will attempt to send Webmention.`); 167 | try { 168 | if (isMicroblogReply(properties)) { 169 | log.log('Reply is targeted at a micro.blog user, using micro.blog Webmention endpoint.'); 170 | await axios.post( 171 | 'https://micro.blog/webmention', 172 | // `source` is our post; `target` is the URL being replied to 173 | querystring.stringify({ 174 | source: postUrl, 175 | target: replyUrl, 176 | }), 177 | { 178 | headers: { 179 | 'content-type': 'application/x-www-form-urlencoded', 180 | }, 181 | }, 182 | ); 183 | } else { 184 | log.log('Reply is not targeted at a micro.blog user, auto-discovering Webmention endpoint.'); 185 | await new Promise((resolve, reject) => { 186 | webmention( 187 | { 188 | source: postUrl, 189 | target: replyUrl, 190 | }, 191 | (err, obj) => { 192 | if (err) { 193 | reject(err); // should be logged in the `catch` block below 194 | } 195 | if (!obj.success) reject(obj); 196 | resolve(obj); 197 | }, 198 | ); 199 | }); 200 | } 201 | log.log(`Successfully sent Webmention: [${postUrl} -> ${replyUrl}]`); 202 | } catch (webmentionError) { 203 | log.error("Couldn't send Webmention!", webmentionError); 204 | log.error('Continuing nonfatally...'); 205 | } 206 | } 207 | } 208 | 209 | if (microblogPingFeedURL && !replyUrls) { 210 | try { 211 | log.log(`Attempting to ping micro.blog with feed URL [${microblogPingFeedURL}]...`); 212 | await axios.post( 213 | 'https://micro.blog/ping', 214 | querystring.stringify({ 215 | url: microblogPingFeedURL, 216 | }), 217 | { 218 | headers: { 219 | 'content-type': 'application/x-www-form-urlencoded', 220 | }, 221 | }, 222 | ); 223 | log.log('Successfully pinged micro.blog.'); 224 | } catch (pingError) { 225 | log.error("Couldn't ping micro.blog!", pingError); 226 | log.error('Continuing nonfatally...'); 227 | } 228 | } 229 | 230 | return { url: postUrl }; 231 | }, 232 | }), 233 | ); 234 | 235 | const listenPort = config.get('app.listenPort'); 236 | app.listen(listenPort, () => log.log(`Listening on port ${listenPort}.`)); 237 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "ES2017", 5 | "lib": ["ES2017"], 6 | "moduleResolution": "node", 7 | "sourceMap": true, 8 | "noUnusedLocals": true, 9 | "outDir": "dist" 10 | }, 11 | "include": ["src/**/*"] 12 | } 13 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aashutoshrathi/word-wrap@^1.2.3": 6 | version "1.2.6" 7 | resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" 8 | integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== 9 | 10 | "@babel/runtime-corejs3@^7.12.1": 11 | version "7.22.6" 12 | resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz#e8e625eb3db29491e0326b3aeb9929c43b270ae4" 13 | integrity sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw== 14 | dependencies: 15 | core-js-pure "^3.30.2" 16 | regenerator-runtime "^0.13.11" 17 | 18 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": 19 | version "4.4.0" 20 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" 21 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 22 | dependencies: 23 | eslint-visitor-keys "^3.3.0" 24 | 25 | "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": 26 | version "4.5.1" 27 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" 28 | integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== 29 | 30 | "@eslint/eslintrc@^2.1.0": 31 | version "2.1.0" 32 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" 33 | integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== 34 | dependencies: 35 | ajv "^6.12.4" 36 | debug "^4.3.2" 37 | espree "^9.6.0" 38 | globals "^13.19.0" 39 | ignore "^5.2.0" 40 | import-fresh "^3.2.1" 41 | js-yaml "^4.1.0" 42 | minimatch "^3.1.2" 43 | strip-json-comments "^3.1.1" 44 | 45 | "@eslint/js@8.44.0": 46 | version "8.44.0" 47 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" 48 | integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== 49 | 50 | "@humanwhocodes/config-array@^0.11.10": 51 | version "0.11.10" 52 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" 53 | integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== 54 | dependencies: 55 | "@humanwhocodes/object-schema" "^1.2.1" 56 | debug "^4.1.1" 57 | minimatch "^3.0.5" 58 | 59 | "@humanwhocodes/module-importer@^1.0.1": 60 | version "1.0.1" 61 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 62 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 63 | 64 | "@humanwhocodes/object-schema@^1.2.1": 65 | version "1.2.1" 66 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 67 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 68 | 69 | "@nodelib/fs.scandir@2.1.5": 70 | version "2.1.5" 71 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 72 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 73 | dependencies: 74 | "@nodelib/fs.stat" "2.0.5" 75 | run-parallel "^1.1.9" 76 | 77 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 78 | version "2.0.5" 79 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 80 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 81 | 82 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": 83 | version "1.2.8" 84 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 85 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 86 | dependencies: 87 | "@nodelib/fs.scandir" "2.1.5" 88 | fastq "^1.6.0" 89 | 90 | "@types/json-schema@^7.0.12": 91 | version "7.0.12" 92 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" 93 | integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== 94 | 95 | "@types/minilog@^2.0.29": 96 | version "2.0.29" 97 | resolved "https://registry.yarnpkg.com/@types/minilog/-/minilog-2.0.29.tgz#ab192157e4e19c03ad858481b73eb6224a3209db" 98 | integrity sha512-TVUyrnCq82bya9i4e2JqQKpLFo8LOWkTXarWhqelXa7XWyAR0HyLW5Ova4+rbBKG8XejhxbaayecMkUG4sf8hQ== 99 | 100 | "@types/node@^16": 101 | version "16.18.38" 102 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.38.tgz#1dcdb6c54d02b323f621213745f2e44af30c73e6" 103 | integrity sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ== 104 | 105 | "@types/semver@^7.5.0": 106 | version "7.5.0" 107 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" 108 | integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== 109 | 110 | "@typescript-eslint/eslint-plugin@^6.1.0": 111 | version "6.1.0" 112 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" 113 | integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== 114 | dependencies: 115 | "@eslint-community/regexpp" "^4.5.1" 116 | "@typescript-eslint/scope-manager" "6.1.0" 117 | "@typescript-eslint/type-utils" "6.1.0" 118 | "@typescript-eslint/utils" "6.1.0" 119 | "@typescript-eslint/visitor-keys" "6.1.0" 120 | debug "^4.3.4" 121 | graphemer "^1.4.0" 122 | ignore "^5.2.4" 123 | natural-compare "^1.4.0" 124 | natural-compare-lite "^1.4.0" 125 | semver "^7.5.4" 126 | ts-api-utils "^1.0.1" 127 | 128 | "@typescript-eslint/parser@^6.1.0": 129 | version "6.1.0" 130 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.1.0.tgz#3135bf65dca5340d8650703eb8cb83113e156ee5" 131 | integrity sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw== 132 | dependencies: 133 | "@typescript-eslint/scope-manager" "6.1.0" 134 | "@typescript-eslint/types" "6.1.0" 135 | "@typescript-eslint/typescript-estree" "6.1.0" 136 | "@typescript-eslint/visitor-keys" "6.1.0" 137 | debug "^4.3.4" 138 | 139 | "@typescript-eslint/scope-manager@6.1.0": 140 | version "6.1.0" 141 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" 142 | integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== 143 | dependencies: 144 | "@typescript-eslint/types" "6.1.0" 145 | "@typescript-eslint/visitor-keys" "6.1.0" 146 | 147 | "@typescript-eslint/type-utils@6.1.0": 148 | version "6.1.0" 149 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" 150 | integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== 151 | dependencies: 152 | "@typescript-eslint/typescript-estree" "6.1.0" 153 | "@typescript-eslint/utils" "6.1.0" 154 | debug "^4.3.4" 155 | ts-api-utils "^1.0.1" 156 | 157 | "@typescript-eslint/types@6.1.0": 158 | version "6.1.0" 159 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" 160 | integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== 161 | 162 | "@typescript-eslint/typescript-estree@6.1.0": 163 | version "6.1.0" 164 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" 165 | integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== 166 | dependencies: 167 | "@typescript-eslint/types" "6.1.0" 168 | "@typescript-eslint/visitor-keys" "6.1.0" 169 | debug "^4.3.4" 170 | globby "^11.1.0" 171 | is-glob "^4.0.3" 172 | semver "^7.5.4" 173 | ts-api-utils "^1.0.1" 174 | 175 | "@typescript-eslint/utils@6.1.0": 176 | version "6.1.0" 177 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" 178 | integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== 179 | dependencies: 180 | "@eslint-community/eslint-utils" "^4.4.0" 181 | "@types/json-schema" "^7.0.12" 182 | "@types/semver" "^7.5.0" 183 | "@typescript-eslint/scope-manager" "6.1.0" 184 | "@typescript-eslint/types" "6.1.0" 185 | "@typescript-eslint/typescript-estree" "6.1.0" 186 | semver "^7.5.4" 187 | 188 | "@typescript-eslint/visitor-keys@6.1.0": 189 | version "6.1.0" 190 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" 191 | integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== 192 | dependencies: 193 | "@typescript-eslint/types" "6.1.0" 194 | eslint-visitor-keys "^3.4.1" 195 | 196 | accepts@~1.3.8: 197 | version "1.3.8" 198 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 199 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 200 | dependencies: 201 | mime-types "~2.1.34" 202 | negotiator "0.6.3" 203 | 204 | acorn-jsx@^5.3.2: 205 | version "5.3.2" 206 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 207 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 208 | 209 | acorn@^8.9.0: 210 | version "8.10.0" 211 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" 212 | integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== 213 | 214 | aggregate-error@^3.0.0: 215 | version "3.1.0" 216 | resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" 217 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 218 | dependencies: 219 | clean-stack "^2.0.0" 220 | indent-string "^4.0.0" 221 | 222 | ajv@^6.10.0, ajv@^6.12.4: 223 | version "6.12.6" 224 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 225 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 226 | dependencies: 227 | fast-deep-equal "^3.1.1" 228 | fast-json-stable-stringify "^2.0.0" 229 | json-schema-traverse "^0.4.1" 230 | uri-js "^4.2.2" 231 | 232 | ansi-escapes@^4.3.0: 233 | version "4.3.2" 234 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" 235 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== 236 | dependencies: 237 | type-fest "^0.21.3" 238 | 239 | ansi-regex@^5.0.1: 240 | version "5.0.1" 241 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 242 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 243 | 244 | ansi-regex@^6.0.1: 245 | version "6.0.1" 246 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" 247 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 248 | 249 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 250 | version "4.3.0" 251 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 252 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 253 | dependencies: 254 | color-convert "^2.0.1" 255 | 256 | ansi-styles@^6.0.0: 257 | version "6.2.1" 258 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 259 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 260 | 261 | append-field@^1.0.0: 262 | version "1.0.0" 263 | resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" 264 | integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== 265 | 266 | argparse@^1.0.7: 267 | version "1.0.10" 268 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 269 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 270 | dependencies: 271 | sprintf-js "~1.0.2" 272 | 273 | argparse@^2.0.1: 274 | version "2.0.1" 275 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 276 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 277 | 278 | array-flatten@1.1.1: 279 | version "1.1.1" 280 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 281 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 282 | 283 | array-union@^2.1.0: 284 | version "2.1.0" 285 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 286 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 287 | 288 | assert-plus@^1.0.0: 289 | version "1.0.0" 290 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 291 | integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== 292 | 293 | astral-regex@^2.0.0: 294 | version "2.0.0" 295 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 296 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 297 | 298 | asynckit@^0.4.0: 299 | version "0.4.0" 300 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 301 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 302 | 303 | axios@^1.4.0: 304 | version "1.4.0" 305 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" 306 | integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== 307 | dependencies: 308 | follow-redirects "^1.15.0" 309 | form-data "^4.0.0" 310 | proxy-from-env "^1.1.0" 311 | 312 | balanced-match@^1.0.0: 313 | version "1.0.2" 314 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 315 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 316 | 317 | body-parser@1.20.1: 318 | version "1.20.1" 319 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" 320 | integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== 321 | dependencies: 322 | bytes "3.1.2" 323 | content-type "~1.0.4" 324 | debug "2.6.9" 325 | depd "2.0.0" 326 | destroy "1.2.0" 327 | http-errors "2.0.0" 328 | iconv-lite "0.4.24" 329 | on-finished "2.4.1" 330 | qs "6.11.0" 331 | raw-body "2.5.1" 332 | type-is "~1.6.18" 333 | unpipe "1.0.0" 334 | 335 | body-parser@^1.13.1: 336 | version "1.20.2" 337 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" 338 | integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== 339 | dependencies: 340 | bytes "3.1.2" 341 | content-type "~1.0.5" 342 | debug "2.6.9" 343 | depd "2.0.0" 344 | destroy "1.2.0" 345 | http-errors "2.0.0" 346 | iconv-lite "0.4.24" 347 | on-finished "2.4.1" 348 | qs "6.11.0" 349 | raw-body "2.5.2" 350 | type-is "~1.6.18" 351 | unpipe "1.0.0" 352 | 353 | boolbase@^1.0.0: 354 | version "1.0.0" 355 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 356 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== 357 | 358 | brace-expansion@^1.1.7: 359 | version "1.1.11" 360 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 361 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 362 | dependencies: 363 | balanced-match "^1.0.0" 364 | concat-map "0.0.1" 365 | 366 | braces@^3.0.2: 367 | version "3.0.2" 368 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 369 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 370 | dependencies: 371 | fill-range "^7.0.1" 372 | 373 | buffer-from@^1.0.0: 374 | version "1.1.2" 375 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 376 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 377 | 378 | bunyan-adaptor@^4.0.1: 379 | version "4.0.1" 380 | resolved "https://registry.yarnpkg.com/bunyan-adaptor/-/bunyan-adaptor-4.0.1.tgz#c0c7b377e0d00f7d5ad6ba3382a2c9acbf979623" 381 | integrity sha512-pD7ernr140ZjdPu94u5uCUTVlE1Kpku8WPg5RqH7ycFmM7XmWYbQpL1GGxlDOt/BSAm5TIqG7VrnwvFzIJ3+vQ== 382 | 383 | busboy@^0.2.11: 384 | version "0.2.14" 385 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 386 | integrity sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg== 387 | dependencies: 388 | dicer "0.2.5" 389 | readable-stream "1.1.x" 390 | 391 | bytes@3.1.2: 392 | version "3.1.2" 393 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 394 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 395 | 396 | call-bind@^1.0.0: 397 | version "1.0.2" 398 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 399 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 400 | dependencies: 401 | function-bind "^1.1.1" 402 | get-intrinsic "^1.0.2" 403 | 404 | callsites@^3.0.0: 405 | version "3.1.0" 406 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 407 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 408 | 409 | chalk@5.2.0: 410 | version "5.2.0" 411 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" 412 | integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== 413 | 414 | chalk@^4.0.0: 415 | version "4.1.2" 416 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 417 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 418 | dependencies: 419 | ansi-styles "^4.1.0" 420 | supports-color "^7.1.0" 421 | 422 | cheerio-select@^2.1.0: 423 | version "2.1.0" 424 | resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" 425 | integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== 426 | dependencies: 427 | boolbase "^1.0.0" 428 | css-select "^5.1.0" 429 | css-what "^6.1.0" 430 | domelementtype "^2.3.0" 431 | domhandler "^5.0.3" 432 | domutils "^3.0.1" 433 | 434 | cheerio@^1.0.0-rc.2: 435 | version "1.0.0-rc.12" 436 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" 437 | integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== 438 | dependencies: 439 | cheerio-select "^2.1.0" 440 | dom-serializer "^2.0.0" 441 | domhandler "^5.0.3" 442 | domutils "^3.0.1" 443 | htmlparser2 "^8.0.1" 444 | parse5 "^7.0.0" 445 | parse5-htmlparser2-tree-adapter "^7.0.0" 446 | 447 | clean-stack@^2.0.0: 448 | version "2.2.0" 449 | resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" 450 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 451 | 452 | cli-cursor@^3.1.0: 453 | version "3.1.0" 454 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 455 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 456 | dependencies: 457 | restore-cursor "^3.1.0" 458 | 459 | cli-truncate@^2.1.0: 460 | version "2.1.0" 461 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" 462 | integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== 463 | dependencies: 464 | slice-ansi "^3.0.0" 465 | string-width "^4.2.0" 466 | 467 | cli-truncate@^3.1.0: 468 | version "3.1.0" 469 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" 470 | integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== 471 | dependencies: 472 | slice-ansi "^5.0.0" 473 | string-width "^5.0.0" 474 | 475 | color-convert@^2.0.1: 476 | version "2.0.1" 477 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 478 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 479 | dependencies: 480 | color-name "~1.1.4" 481 | 482 | color-name@~1.1.4: 483 | version "1.1.4" 484 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 485 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 486 | 487 | colorette@^2.0.19: 488 | version "2.0.20" 489 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" 490 | integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== 491 | 492 | combined-stream@^1.0.8: 493 | version "1.0.8" 494 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 495 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 496 | dependencies: 497 | delayed-stream "~1.0.0" 498 | 499 | commander@^10.0.0: 500 | version "10.0.1" 501 | resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" 502 | integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== 503 | 504 | concat-map@0.0.1: 505 | version "0.0.1" 506 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 507 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 508 | 509 | concat-stream@^1.5.2, concat-stream@^1.6.0: 510 | version "1.6.2" 511 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 512 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 513 | dependencies: 514 | buffer-from "^1.0.0" 515 | inherits "^2.0.3" 516 | readable-stream "^2.2.2" 517 | typedarray "^0.0.6" 518 | 519 | config@^3.3.9: 520 | version "3.3.9" 521 | resolved "https://registry.yarnpkg.com/config/-/config-3.3.9.tgz#27fae95b43e0e1d5723e54143c090954d8e49572" 522 | integrity sha512-G17nfe+cY7kR0wVpc49NCYvNtelm/pPy8czHoFkAgtV1lkmcp7DHtWCdDu+C9Z7gb2WVqa9Tm3uF9aKaPbCfhg== 523 | dependencies: 524 | json5 "^2.2.3" 525 | 526 | content-disposition@0.5.4: 527 | version "0.5.4" 528 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 529 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 530 | dependencies: 531 | safe-buffer "5.2.1" 532 | 533 | content-type@~1.0.4, content-type@~1.0.5: 534 | version "1.0.5" 535 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" 536 | integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== 537 | 538 | cookie-signature@1.0.6: 539 | version "1.0.6" 540 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 541 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 542 | 543 | cookie@0.5.0: 544 | version "0.5.0" 545 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 546 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 547 | 548 | core-js-pure@^3.30.2: 549 | version "3.31.1" 550 | resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.1.tgz#73d154958881873bc19381df80bddb20c8d0cdb5" 551 | integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== 552 | 553 | core-util-is@1.0.2: 554 | version "1.0.2" 555 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 556 | integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== 557 | 558 | core-util-is@~1.0.0: 559 | version "1.0.3" 560 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 561 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 562 | 563 | cross-spawn@^7.0.2, cross-spawn@^7.0.3: 564 | version "7.0.3" 565 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 566 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 567 | dependencies: 568 | path-key "^3.1.0" 569 | shebang-command "^2.0.0" 570 | which "^2.0.1" 571 | 572 | css-select@^5.1.0: 573 | version "5.1.0" 574 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" 575 | integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== 576 | dependencies: 577 | boolbase "^1.0.0" 578 | css-what "^6.1.0" 579 | domhandler "^5.0.2" 580 | domutils "^3.0.1" 581 | nth-check "^2.0.1" 582 | 583 | css-what@^6.1.0: 584 | version "6.1.0" 585 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 586 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 587 | 588 | datamap-interface@^0.3.0: 589 | version "0.3.1" 590 | resolved "https://registry.yarnpkg.com/datamap-interface/-/datamap-interface-0.3.1.tgz#adddf2de75abaa19065d92166329fb69c055f523" 591 | integrity sha512-WsUm9xMqSPGOCrMow7wsYtFFF8MrLnmpj71CruB2amJsliOQCJ8OwqDDpVWfFVddONXDg+XA5XbhqcctBna2Vg== 592 | 593 | debug@2.6.9: 594 | version "2.6.9" 595 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 596 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 597 | dependencies: 598 | ms "2.0.0" 599 | 600 | debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: 601 | version "4.3.4" 602 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 603 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 604 | dependencies: 605 | ms "2.1.2" 606 | 607 | deep-is@^0.1.3: 608 | version "0.1.4" 609 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 610 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 611 | 612 | delayed-stream@~1.0.0: 613 | version "1.0.0" 614 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 615 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 616 | 617 | depd@2.0.0: 618 | version "2.0.0" 619 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 620 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 621 | 622 | destroy@1.2.0: 623 | version "1.2.0" 624 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 625 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 626 | 627 | dicer@0.2.5: 628 | version "0.2.5" 629 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 630 | integrity sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg== 631 | dependencies: 632 | readable-stream "1.1.x" 633 | streamsearch "0.1.2" 634 | 635 | dir-glob@^3.0.1: 636 | version "3.0.1" 637 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 638 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 639 | dependencies: 640 | path-type "^4.0.0" 641 | 642 | doctrine@^3.0.0: 643 | version "3.0.0" 644 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 645 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 646 | dependencies: 647 | esutils "^2.0.2" 648 | 649 | dom-serializer@0: 650 | version "0.2.2" 651 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" 652 | integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== 653 | dependencies: 654 | domelementtype "^2.0.1" 655 | entities "^2.0.0" 656 | 657 | dom-serializer@^2.0.0: 658 | version "2.0.0" 659 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" 660 | integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== 661 | dependencies: 662 | domelementtype "^2.3.0" 663 | domhandler "^5.0.2" 664 | entities "^4.2.0" 665 | 666 | domelementtype@1, domelementtype@^1.3.1: 667 | version "1.3.1" 668 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" 669 | integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== 670 | 671 | domelementtype@^2.0.1, domelementtype@^2.3.0: 672 | version "2.3.0" 673 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 674 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 675 | 676 | domhandler@^2.3.0: 677 | version "2.4.2" 678 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" 679 | integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== 680 | dependencies: 681 | domelementtype "1" 682 | 683 | domhandler@^5.0.2, domhandler@^5.0.3: 684 | version "5.0.3" 685 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" 686 | integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== 687 | dependencies: 688 | domelementtype "^2.3.0" 689 | 690 | domutils@^1.5.1: 691 | version "1.7.0" 692 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" 693 | integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== 694 | dependencies: 695 | dom-serializer "0" 696 | domelementtype "1" 697 | 698 | domutils@^3.0.1: 699 | version "3.1.0" 700 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" 701 | integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== 702 | dependencies: 703 | dom-serializer "^2.0.0" 704 | domelementtype "^2.3.0" 705 | domhandler "^5.0.3" 706 | 707 | duplexer@~0.1.1: 708 | version "0.1.2" 709 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" 710 | integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== 711 | 712 | eastasianwidth@^0.2.0: 713 | version "0.2.0" 714 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 715 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 716 | 717 | ee-first@1.1.1: 718 | version "1.1.1" 719 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 720 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 721 | 722 | emoji-regex@^8.0.0: 723 | version "8.0.0" 724 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 725 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 726 | 727 | emoji-regex@^9.2.2: 728 | version "9.2.2" 729 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 730 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 731 | 732 | encodeurl@~1.0.2: 733 | version "1.0.2" 734 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 735 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 736 | 737 | encoding@^0.1.11: 738 | version "0.1.13" 739 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" 740 | integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== 741 | dependencies: 742 | iconv-lite "^0.6.2" 743 | 744 | ent@^2.2.0: 745 | version "2.2.0" 746 | resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" 747 | integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== 748 | 749 | entities@^1.1.1: 750 | version "1.1.2" 751 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" 752 | integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== 753 | 754 | entities@^2.0.0: 755 | version "2.2.0" 756 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 757 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 758 | 759 | entities@^4.2.0, entities@^4.4.0: 760 | version "4.5.0" 761 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" 762 | integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== 763 | 764 | es7-array.prototype.includes@^2.0.0: 765 | version "2.0.0" 766 | resolved "https://registry.yarnpkg.com/es7-array.prototype.includes/-/es7-array.prototype.includes-2.0.0.tgz#0e23aa5238bbe2e7b23255492ef92f45b8aaa46a" 767 | integrity sha512-hvbywu1ogBb1jcT1BgKZ000FHvvONFpUIPiw3g5DFg8joHXU2pyeoKU1i1wbZ4C771fwiqREHPa2GeZtCZ1Uww== 768 | 769 | escape-html@^1.0.3, escape-html@~1.0.3: 770 | version "1.0.3" 771 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 772 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 773 | 774 | escape-string-regexp@^4.0.0: 775 | version "4.0.0" 776 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 777 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 778 | 779 | eslint-scope@^7.2.0: 780 | version "7.2.1" 781 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.1.tgz#936821d3462675f25a18ac5fd88a67cc15b393bd" 782 | integrity sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA== 783 | dependencies: 784 | esrecurse "^4.3.0" 785 | estraverse "^5.2.0" 786 | 787 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: 788 | version "3.4.1" 789 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" 790 | integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== 791 | 792 | eslint@^8.45.0: 793 | version "8.45.0" 794 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" 795 | integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== 796 | dependencies: 797 | "@eslint-community/eslint-utils" "^4.2.0" 798 | "@eslint-community/regexpp" "^4.4.0" 799 | "@eslint/eslintrc" "^2.1.0" 800 | "@eslint/js" "8.44.0" 801 | "@humanwhocodes/config-array" "^0.11.10" 802 | "@humanwhocodes/module-importer" "^1.0.1" 803 | "@nodelib/fs.walk" "^1.2.8" 804 | ajv "^6.10.0" 805 | chalk "^4.0.0" 806 | cross-spawn "^7.0.2" 807 | debug "^4.3.2" 808 | doctrine "^3.0.0" 809 | escape-string-regexp "^4.0.0" 810 | eslint-scope "^7.2.0" 811 | eslint-visitor-keys "^3.4.1" 812 | espree "^9.6.0" 813 | esquery "^1.4.2" 814 | esutils "^2.0.2" 815 | fast-deep-equal "^3.1.3" 816 | file-entry-cache "^6.0.1" 817 | find-up "^5.0.0" 818 | glob-parent "^6.0.2" 819 | globals "^13.19.0" 820 | graphemer "^1.4.0" 821 | ignore "^5.2.0" 822 | imurmurhash "^0.1.4" 823 | is-glob "^4.0.0" 824 | is-path-inside "^3.0.3" 825 | js-yaml "^4.1.0" 826 | json-stable-stringify-without-jsonify "^1.0.1" 827 | levn "^0.4.1" 828 | lodash.merge "^4.6.2" 829 | minimatch "^3.1.2" 830 | natural-compare "^1.4.0" 831 | optionator "^0.9.3" 832 | strip-ansi "^6.0.1" 833 | text-table "^0.2.0" 834 | 835 | espree@^9.6.0: 836 | version "9.6.1" 837 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" 838 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== 839 | dependencies: 840 | acorn "^8.9.0" 841 | acorn-jsx "^5.3.2" 842 | eslint-visitor-keys "^3.4.1" 843 | 844 | esprima@^4.0.0: 845 | version "4.0.1" 846 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 847 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 848 | 849 | esquery@^1.4.2: 850 | version "1.5.0" 851 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 852 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 853 | dependencies: 854 | estraverse "^5.1.0" 855 | 856 | esrecurse@^4.3.0: 857 | version "4.3.0" 858 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 859 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 860 | dependencies: 861 | estraverse "^5.2.0" 862 | 863 | estraverse@^5.1.0, estraverse@^5.2.0: 864 | version "5.3.0" 865 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 866 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 867 | 868 | esutils@^2.0.2: 869 | version "2.0.3" 870 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 871 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 872 | 873 | etag@~1.8.1: 874 | version "1.8.1" 875 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 876 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 877 | 878 | event-stream@=3.3.4: 879 | version "3.3.4" 880 | resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 881 | integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== 882 | dependencies: 883 | duplexer "~0.1.1" 884 | from "~0" 885 | map-stream "~0.1.0" 886 | pause-stream "0.0.11" 887 | split "0.3" 888 | stream-combiner "~0.0.4" 889 | through "~2.3.1" 890 | 891 | execa@^7.0.0: 892 | version "7.1.1" 893 | resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" 894 | integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== 895 | dependencies: 896 | cross-spawn "^7.0.3" 897 | get-stream "^6.0.1" 898 | human-signals "^4.3.0" 899 | is-stream "^3.0.0" 900 | merge-stream "^2.0.0" 901 | npm-run-path "^5.1.0" 902 | onetime "^6.0.0" 903 | signal-exit "^3.0.7" 904 | strip-final-newline "^3.0.0" 905 | 906 | express@4.18.2, express@^4.13.0: 907 | version "4.18.2" 908 | resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" 909 | integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== 910 | dependencies: 911 | accepts "~1.3.8" 912 | array-flatten "1.1.1" 913 | body-parser "1.20.1" 914 | content-disposition "0.5.4" 915 | content-type "~1.0.4" 916 | cookie "0.5.0" 917 | cookie-signature "1.0.6" 918 | debug "2.6.9" 919 | depd "2.0.0" 920 | encodeurl "~1.0.2" 921 | escape-html "~1.0.3" 922 | etag "~1.8.1" 923 | finalhandler "1.2.0" 924 | fresh "0.5.2" 925 | http-errors "2.0.0" 926 | merge-descriptors "1.0.1" 927 | methods "~1.1.2" 928 | on-finished "2.4.1" 929 | parseurl "~1.3.3" 930 | path-to-regexp "0.1.7" 931 | proxy-addr "~2.0.7" 932 | qs "6.11.0" 933 | range-parser "~1.2.1" 934 | safe-buffer "5.2.1" 935 | send "0.18.0" 936 | serve-static "1.15.0" 937 | setprototypeof "1.2.0" 938 | statuses "2.0.1" 939 | type-is "~1.6.18" 940 | utils-merge "1.0.1" 941 | vary "~1.1.2" 942 | 943 | extsprintf@^1.2.0: 944 | version "1.4.1" 945 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" 946 | integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== 947 | 948 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 949 | version "3.1.3" 950 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 951 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 952 | 953 | fast-glob@^3.2.9: 954 | version "3.3.0" 955 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" 956 | integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== 957 | dependencies: 958 | "@nodelib/fs.stat" "^2.0.2" 959 | "@nodelib/fs.walk" "^1.2.3" 960 | glob-parent "^5.1.2" 961 | merge2 "^1.3.0" 962 | micromatch "^4.0.4" 963 | 964 | fast-json-stable-stringify@^2.0.0: 965 | version "2.1.0" 966 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 967 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 968 | 969 | fast-levenshtein@^2.0.6: 970 | version "2.0.6" 971 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 972 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 973 | 974 | fastq@^1.6.0: 975 | version "1.15.0" 976 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 977 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 978 | dependencies: 979 | reusify "^1.0.4" 980 | 981 | file-entry-cache@^6.0.1: 982 | version "6.0.1" 983 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 984 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 985 | dependencies: 986 | flat-cache "^3.0.4" 987 | 988 | fill-range@^7.0.1: 989 | version "7.0.1" 990 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 991 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 992 | dependencies: 993 | to-regex-range "^5.0.1" 994 | 995 | finalhandler@1.2.0: 996 | version "1.2.0" 997 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 998 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 999 | dependencies: 1000 | debug "2.6.9" 1001 | encodeurl "~1.0.2" 1002 | escape-html "~1.0.3" 1003 | on-finished "2.4.1" 1004 | parseurl "~1.3.3" 1005 | statuses "2.0.1" 1006 | unpipe "~1.0.0" 1007 | 1008 | find-up@^5.0.0: 1009 | version "5.0.0" 1010 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 1011 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 1012 | dependencies: 1013 | locate-path "^6.0.0" 1014 | path-exists "^4.0.0" 1015 | 1016 | flat-cache@^3.0.4: 1017 | version "3.0.4" 1018 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 1019 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 1020 | dependencies: 1021 | flatted "^3.1.0" 1022 | rimraf "^3.0.2" 1023 | 1024 | flatted@^3.1.0: 1025 | version "3.2.7" 1026 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" 1027 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 1028 | 1029 | follow-redirects@^1.15.0, follow-redirects@^1.2.5: 1030 | version "1.15.2" 1031 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" 1032 | integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 1033 | 1034 | form-data@^4.0.0: 1035 | version "4.0.0" 1036 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 1037 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 1038 | dependencies: 1039 | asynckit "^0.4.0" 1040 | combined-stream "^1.0.8" 1041 | mime-types "^2.1.12" 1042 | 1043 | form-urlencoded@^3.0.0: 1044 | version "3.0.2" 1045 | resolved "https://registry.yarnpkg.com/form-urlencoded/-/form-urlencoded-3.0.2.tgz#28181fabc31b263662d6fc9c2e9700af35b2a860" 1046 | integrity sha512-FurPsZ7yfmbX+Vl9ibn/PK5EkeScj/inKtCqx9vc9EOlzh6p6VhanfeIjtDk/kCGrWVbCVW8M3GA7zX3udmgHw== 1047 | 1048 | format-microformat@0.11.1: 1049 | version "0.11.1" 1050 | resolved "https://registry.yarnpkg.com/format-microformat/-/format-microformat-0.11.1.tgz#affbdd898a55bbab851e451c2729a0a50aa2b4fa" 1051 | integrity sha512-+XDLLga0lctzVTjI7OoL6zCJLtqlS5hWOEkuxsMLlj+ie6z+zR8Q2RS0In5XcaMcbY7XNjsf4eRwvJGP/29BOA== 1052 | dependencies: 1053 | ent "^2.2.0" 1054 | escape-html "^1.0.3" 1055 | franc "^1.1.1" 1056 | iso-639-3 "^0.2.0" 1057 | jekyll-utils "^0.1.1" 1058 | js-yaml "^3.3.1" 1059 | lodash.clonedeepwith "^4.5.0" 1060 | lodash.deburr "^4.1.0" 1061 | lodash.defaultsdeep "^4.6.0" 1062 | upndown "^2.0.2" 1063 | 1064 | forwarded@0.2.0: 1065 | version "0.2.0" 1066 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 1067 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 1068 | 1069 | franc@^1.1.1: 1070 | version "1.1.3" 1071 | resolved "https://registry.yarnpkg.com/franc/-/franc-1.1.3.tgz#cbc16f013fb077b3c216cadc9c312e02712dc711" 1072 | integrity sha512-P63X2qb8NshIEZrwfaU6t9rPFFKbw2ZDnD7aMmHyUeagGXberSaVpT/PrjcUC035mUB9NO7DTehuyCRQks73jw== 1073 | dependencies: 1074 | trigram-utils "^0.1.0" 1075 | 1076 | fresh@0.5.2: 1077 | version "0.5.2" 1078 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1079 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 1080 | 1081 | from@~0: 1082 | version "0.1.7" 1083 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 1084 | integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== 1085 | 1086 | fs.realpath@^1.0.0: 1087 | version "1.0.0" 1088 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1089 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1090 | 1091 | function-bind@^1.1.1: 1092 | version "1.1.1" 1093 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1094 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1095 | 1096 | get-intrinsic@^1.0.2: 1097 | version "1.2.1" 1098 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" 1099 | integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== 1100 | dependencies: 1101 | function-bind "^1.1.1" 1102 | has "^1.0.3" 1103 | has-proto "^1.0.1" 1104 | has-symbols "^1.0.3" 1105 | 1106 | get-stream@^6.0.1: 1107 | version "6.0.1" 1108 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 1109 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 1110 | 1111 | get-webmention-url@^2.0.0: 1112 | version "2.0.0" 1113 | resolved "https://registry.yarnpkg.com/get-webmention-url/-/get-webmention-url-2.0.0.tgz#d5167350b53cfe53aa0b2f3168ccc217b01d990c" 1114 | integrity sha512-OUszlsTv+NfaY/q2VBDcJ8SjBgU07q13oP594swWJ5whnmShhFB21hSQANLdtxSG61w2NKrw86RHlBiHzfu8FQ== 1115 | dependencies: 1116 | cheerio "^1.0.0-rc.2" 1117 | concat-stream "^1.6.0" 1118 | es7-array.prototype.includes "^2.0.0" 1119 | follow-redirects "^1.2.5" 1120 | li "^1.2.1" 1121 | lodash.compact "^3.0.1" 1122 | 1123 | glob-parent@^5.1.2: 1124 | version "5.1.2" 1125 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1126 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1127 | dependencies: 1128 | is-glob "^4.0.1" 1129 | 1130 | glob-parent@^6.0.2: 1131 | version "6.0.2" 1132 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1133 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1134 | dependencies: 1135 | is-glob "^4.0.3" 1136 | 1137 | glob@^7.1.3: 1138 | version "7.2.3" 1139 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1140 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1141 | dependencies: 1142 | fs.realpath "^1.0.0" 1143 | inflight "^1.0.4" 1144 | inherits "2" 1145 | minimatch "^3.1.1" 1146 | once "^1.3.0" 1147 | path-is-absolute "^1.0.0" 1148 | 1149 | globals@^13.19.0: 1150 | version "13.20.0" 1151 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 1152 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 1153 | dependencies: 1154 | type-fest "^0.20.2" 1155 | 1156 | globby@^11.1.0: 1157 | version "11.1.0" 1158 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 1159 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 1160 | dependencies: 1161 | array-union "^2.1.0" 1162 | dir-glob "^3.0.1" 1163 | fast-glob "^3.2.9" 1164 | ignore "^5.2.0" 1165 | merge2 "^1.4.1" 1166 | slash "^3.0.0" 1167 | 1168 | graphemer@^1.4.0: 1169 | version "1.4.0" 1170 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" 1171 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== 1172 | 1173 | has-flag@^4.0.0: 1174 | version "4.0.0" 1175 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1176 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1177 | 1178 | has-proto@^1.0.1: 1179 | version "1.0.1" 1180 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" 1181 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== 1182 | 1183 | has-symbols@^1.0.3: 1184 | version "1.0.3" 1185 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1186 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1187 | 1188 | has@^1.0.3: 1189 | version "1.0.3" 1190 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1191 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1192 | dependencies: 1193 | function-bind "^1.1.1" 1194 | 1195 | htmlparser2@^3.8.3: 1196 | version "3.10.1" 1197 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" 1198 | integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== 1199 | dependencies: 1200 | domelementtype "^1.3.1" 1201 | domhandler "^2.3.0" 1202 | domutils "^1.5.1" 1203 | entities "^1.1.1" 1204 | inherits "^2.0.1" 1205 | readable-stream "^3.1.1" 1206 | 1207 | htmlparser2@^8.0.1: 1208 | version "8.0.2" 1209 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" 1210 | integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== 1211 | dependencies: 1212 | domelementtype "^2.3.0" 1213 | domhandler "^5.0.3" 1214 | domutils "^3.0.1" 1215 | entities "^4.4.0" 1216 | 1217 | http-errors@2.0.0: 1218 | version "2.0.0" 1219 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 1220 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 1221 | dependencies: 1222 | depd "2.0.0" 1223 | inherits "2.0.4" 1224 | setprototypeof "1.2.0" 1225 | statuses "2.0.1" 1226 | toidentifier "1.0.1" 1227 | 1228 | human-signals@^4.3.0: 1229 | version "4.3.1" 1230 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" 1231 | integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== 1232 | 1233 | husky@^8.0.3: 1234 | version "8.0.3" 1235 | resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" 1236 | integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== 1237 | 1238 | iconv-lite@0.4.24: 1239 | version "0.4.24" 1240 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1241 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1242 | dependencies: 1243 | safer-buffer ">= 2.1.2 < 3" 1244 | 1245 | iconv-lite@^0.6.2: 1246 | version "0.6.3" 1247 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" 1248 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 1249 | dependencies: 1250 | safer-buffer ">= 2.1.2 < 3.0.0" 1251 | 1252 | ignore@^5.2.0, ignore@^5.2.4: 1253 | version "5.2.4" 1254 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" 1255 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 1256 | 1257 | import-fresh@^3.2.1: 1258 | version "3.3.0" 1259 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1260 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1261 | dependencies: 1262 | parent-module "^1.0.0" 1263 | resolve-from "^4.0.0" 1264 | 1265 | imurmurhash@^0.1.4: 1266 | version "0.1.4" 1267 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1268 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1269 | 1270 | indent-string@^4.0.0: 1271 | version "4.0.0" 1272 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" 1273 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 1274 | 1275 | inflight@^1.0.4: 1276 | version "1.0.6" 1277 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1278 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1279 | dependencies: 1280 | once "^1.3.0" 1281 | wrappy "1" 1282 | 1283 | inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 1284 | version "2.0.4" 1285 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1286 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1287 | 1288 | ipaddr.js@1.9.1: 1289 | version "1.9.1" 1290 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1291 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1292 | 1293 | is-extglob@^2.1.1: 1294 | version "2.1.1" 1295 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1296 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1297 | 1298 | is-fullwidth-code-point@^3.0.0: 1299 | version "3.0.0" 1300 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1301 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1302 | 1303 | is-fullwidth-code-point@^4.0.0: 1304 | version "4.0.0" 1305 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" 1306 | integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== 1307 | 1308 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 1309 | version "4.0.3" 1310 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1311 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1312 | dependencies: 1313 | is-extglob "^2.1.1" 1314 | 1315 | is-number@^7.0.0: 1316 | version "7.0.0" 1317 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1318 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1319 | 1320 | is-path-inside@^3.0.3: 1321 | version "3.0.3" 1322 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1323 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1324 | 1325 | is-stream@^1.0.1: 1326 | version "1.1.0" 1327 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1328 | integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== 1329 | 1330 | is-stream@^3.0.0: 1331 | version "3.0.0" 1332 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" 1333 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== 1334 | 1335 | isarray@0.0.1: 1336 | version "0.0.1" 1337 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1338 | integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== 1339 | 1340 | isarray@~1.0.0: 1341 | version "1.0.0" 1342 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1343 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 1344 | 1345 | isexe@^2.0.0: 1346 | version "2.0.0" 1347 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1348 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1349 | 1350 | iso-639-3@^0.2.0: 1351 | version "0.2.0" 1352 | resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-0.2.0.tgz#475d3ff0dd137719bfe93a20150673c5f1a4b344" 1353 | integrity sha512-pzW565PVzmMjo/XHiS0EF3EJxGKX2I68Eo7LroBsu29Q7k0/25Z0aoNzuYhApXEaDbEdBzLPrr9yfzEhMyN2Ew== 1354 | dependencies: 1355 | datamap-interface "^0.3.0" 1356 | 1357 | jekyll-utils@^0.1.1: 1358 | version "0.1.4" 1359 | resolved "https://registry.yarnpkg.com/jekyll-utils/-/jekyll-utils-0.1.4.tgz#94f2acda00dc941787236e5ef2aabb533dedfaf2" 1360 | integrity sha512-X5mxt9N92FL7VugEx//2B/+89crX3887WS1kJO86wTeu+h/41wEfEChmD9ZfBs4svHXlZAd8vYxpNdRyd0Ddvg== 1361 | dependencies: 1362 | strftime "^0.10.0" 1363 | xregexp "^4.0.0" 1364 | 1365 | js-yaml@^3.3.1: 1366 | version "3.14.1" 1367 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1368 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1369 | dependencies: 1370 | argparse "^1.0.7" 1371 | esprima "^4.0.0" 1372 | 1373 | js-yaml@^4.1.0: 1374 | version "4.1.0" 1375 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1376 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1377 | dependencies: 1378 | argparse "^2.0.1" 1379 | 1380 | json-schema-traverse@^0.4.1: 1381 | version "0.4.1" 1382 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1383 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1384 | 1385 | json-stable-stringify-without-jsonify@^1.0.1: 1386 | version "1.0.1" 1387 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1388 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1389 | 1390 | json5@^2.2.3: 1391 | version "2.2.3" 1392 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1393 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1394 | 1395 | levn@^0.4.1: 1396 | version "0.4.1" 1397 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1398 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1399 | dependencies: 1400 | prelude-ls "^1.2.1" 1401 | type-check "~0.4.0" 1402 | 1403 | li@^1.2.1: 1404 | version "1.3.0" 1405 | resolved "https://registry.yarnpkg.com/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" 1406 | integrity sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw== 1407 | 1408 | lilconfig@2.1.0: 1409 | version "2.1.0" 1410 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" 1411 | integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== 1412 | 1413 | lint-staged@^13.2.3: 1414 | version "13.2.3" 1415 | resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.3.tgz#f899aad6c093473467e9c9e316e3c2d8a28f87a7" 1416 | integrity sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg== 1417 | dependencies: 1418 | chalk "5.2.0" 1419 | cli-truncate "^3.1.0" 1420 | commander "^10.0.0" 1421 | debug "^4.3.4" 1422 | execa "^7.0.0" 1423 | lilconfig "2.1.0" 1424 | listr2 "^5.0.7" 1425 | micromatch "^4.0.5" 1426 | normalize-path "^3.0.0" 1427 | object-inspect "^1.12.3" 1428 | pidtree "^0.6.0" 1429 | string-argv "^0.3.1" 1430 | yaml "^2.2.2" 1431 | 1432 | listr2@^5.0.7: 1433 | version "5.0.8" 1434 | resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" 1435 | integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== 1436 | dependencies: 1437 | cli-truncate "^2.1.0" 1438 | colorette "^2.0.19" 1439 | log-update "^4.0.0" 1440 | p-map "^4.0.0" 1441 | rfdc "^1.3.0" 1442 | rxjs "^7.8.0" 1443 | through "^2.3.8" 1444 | wrap-ansi "^7.0.0" 1445 | 1446 | locate-path@^6.0.0: 1447 | version "6.0.0" 1448 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1449 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1450 | dependencies: 1451 | p-locate "^5.0.0" 1452 | 1453 | lodash.clonedeepwith@^4.5.0: 1454 | version "4.5.0" 1455 | resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4" 1456 | integrity sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA== 1457 | 1458 | lodash.compact@^3.0.1: 1459 | version "3.0.1" 1460 | resolved "https://registry.yarnpkg.com/lodash.compact/-/lodash.compact-3.0.1.tgz#540ce3837745975807471e16b4a2ba21e7256ca5" 1461 | integrity sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ== 1462 | 1463 | lodash.deburr@^4.1.0: 1464 | version "4.1.0" 1465 | resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" 1466 | integrity sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ== 1467 | 1468 | lodash.defaultsdeep@^4.6.0: 1469 | version "4.6.1" 1470 | resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" 1471 | integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== 1472 | 1473 | lodash.merge@^4.6.2: 1474 | version "4.6.2" 1475 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1476 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1477 | 1478 | log-update@^4.0.0: 1479 | version "4.0.0" 1480 | resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" 1481 | integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== 1482 | dependencies: 1483 | ansi-escapes "^4.3.0" 1484 | cli-cursor "^3.1.0" 1485 | slice-ansi "^4.0.0" 1486 | wrap-ansi "^6.2.0" 1487 | 1488 | lru-cache@^6.0.0: 1489 | version "6.0.0" 1490 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1491 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1492 | dependencies: 1493 | yallist "^4.0.0" 1494 | 1495 | map-stream@~0.1.0: 1496 | version "0.1.0" 1497 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 1498 | integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== 1499 | 1500 | media-typer@0.3.0: 1501 | version "0.3.0" 1502 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1503 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 1504 | 1505 | merge-descriptors@1.0.1: 1506 | version "1.0.1" 1507 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1508 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 1509 | 1510 | merge-stream@^2.0.0: 1511 | version "2.0.0" 1512 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1513 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1514 | 1515 | merge2@^1.3.0, merge2@^1.4.1: 1516 | version "1.4.1" 1517 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1518 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1519 | 1520 | methods@~1.1.2: 1521 | version "1.1.2" 1522 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1523 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 1524 | 1525 | microee@0.0.6: 1526 | version "0.0.6" 1527 | resolved "https://registry.yarnpkg.com/microee/-/microee-0.0.6.tgz#a12bdb0103681e8b126a9b071eba4c467c78fffe" 1528 | integrity sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A== 1529 | 1530 | micromatch@^4.0.4, micromatch@^4.0.5: 1531 | version "4.0.5" 1532 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1533 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1534 | dependencies: 1535 | braces "^3.0.2" 1536 | picomatch "^2.3.1" 1537 | 1538 | micropub-express@0.9.1: 1539 | version "0.9.1" 1540 | resolved "https://registry.yarnpkg.com/micropub-express/-/micropub-express-0.9.1.tgz#da0e36cf90849070efa51269e9134109eec6a24c" 1541 | integrity sha512-RuDsq1wISB+iovQhzbGFlBVdz3syho/lytmTxSQ5wHrYOrz5THjjJzM4sOh4fh2tuMHPT0lkj2WFYDFmbx7THg== 1542 | dependencies: 1543 | body-parser "^1.13.1" 1544 | bunyan-adaptor "^4.0.1" 1545 | express "^4.13.0" 1546 | multer "^1.0.1" 1547 | node-fetch "^1.3.0" 1548 | verror "^1.8.1" 1549 | 1550 | mime-db@1.52.0: 1551 | version "1.52.0" 1552 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1553 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1554 | 1555 | mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: 1556 | version "2.1.35" 1557 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1558 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1559 | dependencies: 1560 | mime-db "1.52.0" 1561 | 1562 | mime@1.6.0: 1563 | version "1.6.0" 1564 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1565 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1566 | 1567 | mimic-fn@^2.1.0: 1568 | version "2.1.0" 1569 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1570 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1571 | 1572 | mimic-fn@^4.0.0: 1573 | version "4.0.0" 1574 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" 1575 | integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== 1576 | 1577 | minilog@3.1.0: 1578 | version "3.1.0" 1579 | resolved "https://registry.yarnpkg.com/minilog/-/minilog-3.1.0.tgz#d2d0f1887ca363d1acf0ea86d5c4df293b3fb675" 1580 | integrity sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww== 1581 | dependencies: 1582 | microee "0.0.6" 1583 | 1584 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 1585 | version "3.1.2" 1586 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1587 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1588 | dependencies: 1589 | brace-expansion "^1.1.7" 1590 | 1591 | minimist@^1.2.6: 1592 | version "1.2.8" 1593 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 1594 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1595 | 1596 | mkdirp@3.0.1: 1597 | version "3.0.1" 1598 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" 1599 | integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== 1600 | 1601 | mkdirp@^0.5.4: 1602 | version "0.5.6" 1603 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" 1604 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 1605 | dependencies: 1606 | minimist "^1.2.6" 1607 | 1608 | moment@2.29.4: 1609 | version "2.29.4" 1610 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" 1611 | integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== 1612 | 1613 | ms@2.0.0: 1614 | version "2.0.0" 1615 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1616 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1617 | 1618 | ms@2.1.2: 1619 | version "2.1.2" 1620 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1621 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1622 | 1623 | ms@2.1.3: 1624 | version "2.1.3" 1625 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1626 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1627 | 1628 | multer@^1.0.1: 1629 | version "1.4.4" 1630 | resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" 1631 | integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== 1632 | dependencies: 1633 | append-field "^1.0.0" 1634 | busboy "^0.2.11" 1635 | concat-stream "^1.5.2" 1636 | mkdirp "^0.5.4" 1637 | object-assign "^4.1.1" 1638 | on-finished "^2.3.0" 1639 | type-is "^1.6.4" 1640 | xtend "^4.0.0" 1641 | 1642 | n-gram@^0.1.0: 1643 | version "0.1.2" 1644 | resolved "https://registry.yarnpkg.com/n-gram/-/n-gram-0.1.2.tgz#9acecb0f797fbfd22a0ad8a28d987880a63002ab" 1645 | integrity sha512-7wuibLo3ebm/o4bIFKsBhAZM/GA7/jwwg3LKUjN/bllNGLLfS4rhJuLsWPPB0ncPUcofAgndaS0MR2CDgkWeFQ== 1646 | 1647 | natural-compare-lite@^1.4.0: 1648 | version "1.4.0" 1649 | resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" 1650 | integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== 1651 | 1652 | natural-compare@^1.4.0: 1653 | version "1.4.0" 1654 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1655 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1656 | 1657 | negotiator@0.6.3: 1658 | version "0.6.3" 1659 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1660 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1661 | 1662 | node-cleanup@^2.1.2: 1663 | version "2.1.2" 1664 | resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" 1665 | integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== 1666 | 1667 | node-fetch@^1.3.0: 1668 | version "1.7.3" 1669 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" 1670 | integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== 1671 | dependencies: 1672 | encoding "^0.1.11" 1673 | is-stream "^1.0.1" 1674 | 1675 | normalize-path@^3.0.0: 1676 | version "3.0.0" 1677 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1678 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1679 | 1680 | npm-run-path@^5.1.0: 1681 | version "5.1.0" 1682 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" 1683 | integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== 1684 | dependencies: 1685 | path-key "^4.0.0" 1686 | 1687 | nth-check@^2.0.1: 1688 | version "2.1.1" 1689 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" 1690 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== 1691 | dependencies: 1692 | boolbase "^1.0.0" 1693 | 1694 | object-assign@^4.1.1: 1695 | version "4.1.1" 1696 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1697 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1698 | 1699 | object-inspect@^1.12.3, object-inspect@^1.9.0: 1700 | version "1.12.3" 1701 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" 1702 | integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== 1703 | 1704 | on-finished@2.4.1, on-finished@^2.3.0: 1705 | version "2.4.1" 1706 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 1707 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 1708 | dependencies: 1709 | ee-first "1.1.1" 1710 | 1711 | once@^1.3.0: 1712 | version "1.4.0" 1713 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1714 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1715 | dependencies: 1716 | wrappy "1" 1717 | 1718 | onetime@^5.1.0: 1719 | version "5.1.2" 1720 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1721 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1722 | dependencies: 1723 | mimic-fn "^2.1.0" 1724 | 1725 | onetime@^6.0.0: 1726 | version "6.0.0" 1727 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" 1728 | integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== 1729 | dependencies: 1730 | mimic-fn "^4.0.0" 1731 | 1732 | optionator@^0.9.3: 1733 | version "0.9.3" 1734 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" 1735 | integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== 1736 | dependencies: 1737 | "@aashutoshrathi/word-wrap" "^1.2.3" 1738 | deep-is "^0.1.3" 1739 | fast-levenshtein "^2.0.6" 1740 | levn "^0.4.1" 1741 | prelude-ls "^1.2.1" 1742 | type-check "^0.4.0" 1743 | 1744 | p-limit@^3.0.2: 1745 | version "3.1.0" 1746 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1747 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1748 | dependencies: 1749 | yocto-queue "^0.1.0" 1750 | 1751 | p-locate@^5.0.0: 1752 | version "5.0.0" 1753 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1754 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1755 | dependencies: 1756 | p-limit "^3.0.2" 1757 | 1758 | p-map@^4.0.0: 1759 | version "4.0.0" 1760 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" 1761 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== 1762 | dependencies: 1763 | aggregate-error "^3.0.0" 1764 | 1765 | parent-module@^1.0.0: 1766 | version "1.0.1" 1767 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1768 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1769 | dependencies: 1770 | callsites "^3.0.0" 1771 | 1772 | parse5-htmlparser2-tree-adapter@^7.0.0: 1773 | version "7.0.0" 1774 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" 1775 | integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== 1776 | dependencies: 1777 | domhandler "^5.0.2" 1778 | parse5 "^7.0.0" 1779 | 1780 | parse5@^7.0.0: 1781 | version "7.1.2" 1782 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" 1783 | integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== 1784 | dependencies: 1785 | entities "^4.4.0" 1786 | 1787 | parseurl@~1.3.3: 1788 | version "1.3.3" 1789 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1790 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1791 | 1792 | path-exists@^4.0.0: 1793 | version "4.0.0" 1794 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1795 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1796 | 1797 | path-is-absolute@^1.0.0: 1798 | version "1.0.1" 1799 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1800 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1801 | 1802 | path-key@^3.1.0: 1803 | version "3.1.1" 1804 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1805 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1806 | 1807 | path-key@^4.0.0: 1808 | version "4.0.0" 1809 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" 1810 | integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== 1811 | 1812 | path-to-regexp@0.1.7: 1813 | version "0.1.7" 1814 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1815 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 1816 | 1817 | path-type@^4.0.0: 1818 | version "4.0.0" 1819 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1820 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1821 | 1822 | pause-stream@0.0.11: 1823 | version "0.0.11" 1824 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1825 | integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== 1826 | dependencies: 1827 | through "~2.3" 1828 | 1829 | picomatch@^2.3.1: 1830 | version "2.3.1" 1831 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1832 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1833 | 1834 | pidtree@^0.6.0: 1835 | version "0.6.0" 1836 | resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" 1837 | integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== 1838 | 1839 | prelude-ls@^1.2.1: 1840 | version "1.2.1" 1841 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1842 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1843 | 1844 | prettier@^3.0.0: 1845 | version "3.0.0" 1846 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" 1847 | integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== 1848 | 1849 | process-nextick-args@~2.0.0: 1850 | version "2.0.1" 1851 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1852 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1853 | 1854 | proxy-addr@~2.0.7: 1855 | version "2.0.7" 1856 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1857 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1858 | dependencies: 1859 | forwarded "0.2.0" 1860 | ipaddr.js "1.9.1" 1861 | 1862 | proxy-from-env@^1.1.0: 1863 | version "1.1.0" 1864 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 1865 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 1866 | 1867 | ps-tree@^1.2.0: 1868 | version "1.2.0" 1869 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" 1870 | integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== 1871 | dependencies: 1872 | event-stream "=3.3.4" 1873 | 1874 | punycode@^2.1.0: 1875 | version "2.3.0" 1876 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 1877 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 1878 | 1879 | qs@6.11.0: 1880 | version "6.11.0" 1881 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" 1882 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 1883 | dependencies: 1884 | side-channel "^1.0.4" 1885 | 1886 | queue-microtask@^1.2.2: 1887 | version "1.2.3" 1888 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1889 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1890 | 1891 | range-parser@~1.2.1: 1892 | version "1.2.1" 1893 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1894 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1895 | 1896 | raw-body@2.5.1: 1897 | version "2.5.1" 1898 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 1899 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 1900 | dependencies: 1901 | bytes "3.1.2" 1902 | http-errors "2.0.0" 1903 | iconv-lite "0.4.24" 1904 | unpipe "1.0.0" 1905 | 1906 | raw-body@2.5.2: 1907 | version "2.5.2" 1908 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" 1909 | integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== 1910 | dependencies: 1911 | bytes "3.1.2" 1912 | http-errors "2.0.0" 1913 | iconv-lite "0.4.24" 1914 | unpipe "1.0.0" 1915 | 1916 | readable-stream@1.1.x: 1917 | version "1.1.14" 1918 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 1919 | integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== 1920 | dependencies: 1921 | core-util-is "~1.0.0" 1922 | inherits "~2.0.1" 1923 | isarray "0.0.1" 1924 | string_decoder "~0.10.x" 1925 | 1926 | readable-stream@^2.2.2: 1927 | version "2.3.8" 1928 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" 1929 | integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== 1930 | dependencies: 1931 | core-util-is "~1.0.0" 1932 | inherits "~2.0.3" 1933 | isarray "~1.0.0" 1934 | process-nextick-args "~2.0.0" 1935 | safe-buffer "~5.1.1" 1936 | string_decoder "~1.1.1" 1937 | util-deprecate "~1.0.1" 1938 | 1939 | readable-stream@^3.1.1: 1940 | version "3.6.2" 1941 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" 1942 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 1943 | dependencies: 1944 | inherits "^2.0.3" 1945 | string_decoder "^1.1.1" 1946 | util-deprecate "^1.0.1" 1947 | 1948 | regenerator-runtime@^0.13.11: 1949 | version "0.13.11" 1950 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" 1951 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== 1952 | 1953 | resolve-from@^4.0.0: 1954 | version "4.0.0" 1955 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1956 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1957 | 1958 | restore-cursor@^3.1.0: 1959 | version "3.1.0" 1960 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 1961 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 1962 | dependencies: 1963 | onetime "^5.1.0" 1964 | signal-exit "^3.0.2" 1965 | 1966 | reusify@^1.0.4: 1967 | version "1.0.4" 1968 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1969 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1970 | 1971 | rfdc@^1.3.0: 1972 | version "1.3.0" 1973 | resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" 1974 | integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== 1975 | 1976 | rimraf@^3.0.2: 1977 | version "3.0.2" 1978 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1979 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1980 | dependencies: 1981 | glob "^7.1.3" 1982 | 1983 | run-parallel@^1.1.9: 1984 | version "1.2.0" 1985 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1986 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1987 | dependencies: 1988 | queue-microtask "^1.2.2" 1989 | 1990 | rxjs@^7.8.0: 1991 | version "7.8.1" 1992 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" 1993 | integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== 1994 | dependencies: 1995 | tslib "^2.1.0" 1996 | 1997 | safe-buffer@5.2.1, safe-buffer@~5.2.0: 1998 | version "5.2.1" 1999 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2000 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2001 | 2002 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2003 | version "5.1.2" 2004 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2005 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2006 | 2007 | "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": 2008 | version "2.1.2" 2009 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2010 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2011 | 2012 | semver@^7.5.4: 2013 | version "7.5.4" 2014 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 2015 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 2016 | dependencies: 2017 | lru-cache "^6.0.0" 2018 | 2019 | send-webmention@2.0.0: 2020 | version "2.0.0" 2021 | resolved "https://registry.yarnpkg.com/send-webmention/-/send-webmention-2.0.0.tgz#6f38ecb31ce76e8ff072d253c542ff8eb50c4f7a" 2022 | integrity sha512-qKfkyLnVuv9MYWLMvhPRk+cDZkzLk0mYqn5jFK7miKcIF8QUGXJaIrDXYqou8epkSnQ2QiWCMo1FRB/b9ZZaEA== 2023 | dependencies: 2024 | form-urlencoded "^3.0.0" 2025 | get-webmention-url "^2.0.0" 2026 | 2027 | send@0.18.0: 2028 | version "0.18.0" 2029 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 2030 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 2031 | dependencies: 2032 | debug "2.6.9" 2033 | depd "2.0.0" 2034 | destroy "1.2.0" 2035 | encodeurl "~1.0.2" 2036 | escape-html "~1.0.3" 2037 | etag "~1.8.1" 2038 | fresh "0.5.2" 2039 | http-errors "2.0.0" 2040 | mime "1.6.0" 2041 | ms "2.1.3" 2042 | on-finished "2.4.1" 2043 | range-parser "~1.2.1" 2044 | statuses "2.0.1" 2045 | 2046 | serve-static@1.15.0: 2047 | version "1.15.0" 2048 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 2049 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 2050 | dependencies: 2051 | encodeurl "~1.0.2" 2052 | escape-html "~1.0.3" 2053 | parseurl "~1.3.3" 2054 | send "0.18.0" 2055 | 2056 | setprototypeof@1.2.0: 2057 | version "1.2.0" 2058 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 2059 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 2060 | 2061 | shebang-command@^2.0.0: 2062 | version "2.0.0" 2063 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2064 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2065 | dependencies: 2066 | shebang-regex "^3.0.0" 2067 | 2068 | shebang-regex@^3.0.0: 2069 | version "3.0.0" 2070 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2071 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2072 | 2073 | side-channel@^1.0.4: 2074 | version "1.0.4" 2075 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 2076 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 2077 | dependencies: 2078 | call-bind "^1.0.0" 2079 | get-intrinsic "^1.0.2" 2080 | object-inspect "^1.9.0" 2081 | 2082 | signal-exit@^3.0.2, signal-exit@^3.0.7: 2083 | version "3.0.7" 2084 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 2085 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 2086 | 2087 | slash@^3.0.0: 2088 | version "3.0.0" 2089 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 2090 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 2091 | 2092 | slice-ansi@^3.0.0: 2093 | version "3.0.0" 2094 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" 2095 | integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== 2096 | dependencies: 2097 | ansi-styles "^4.0.0" 2098 | astral-regex "^2.0.0" 2099 | is-fullwidth-code-point "^3.0.0" 2100 | 2101 | slice-ansi@^4.0.0: 2102 | version "4.0.0" 2103 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 2104 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 2105 | dependencies: 2106 | ansi-styles "^4.0.0" 2107 | astral-regex "^2.0.0" 2108 | is-fullwidth-code-point "^3.0.0" 2109 | 2110 | slice-ansi@^5.0.0: 2111 | version "5.0.0" 2112 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" 2113 | integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== 2114 | dependencies: 2115 | ansi-styles "^6.0.0" 2116 | is-fullwidth-code-point "^4.0.0" 2117 | 2118 | split@0.3: 2119 | version "0.3.3" 2120 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 2121 | integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== 2122 | dependencies: 2123 | through "2" 2124 | 2125 | sprintf-js@~1.0.2: 2126 | version "1.0.3" 2127 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2128 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== 2129 | 2130 | statuses@2.0.1: 2131 | version "2.0.1" 2132 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 2133 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 2134 | 2135 | stream-combiner@~0.0.4: 2136 | version "0.0.4" 2137 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 2138 | integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== 2139 | dependencies: 2140 | duplexer "~0.1.1" 2141 | 2142 | streamsearch@0.1.2: 2143 | version "0.1.2" 2144 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 2145 | integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== 2146 | 2147 | strftime@^0.10.0: 2148 | version "0.10.2" 2149 | resolved "https://registry.yarnpkg.com/strftime/-/strftime-0.10.2.tgz#9cc5a63a6170455730ddf617e8b506ab06dde985" 2150 | integrity sha512-Y6IZaTVM80chcMe7j65Gl/0nmlNdtt+KWPle5YeCAjmsBfw+id2qdaJ5MDrxUq+OmHKab+jHe7mUjU/aNMSZZg== 2151 | 2152 | string-argv@^0.3.1: 2153 | version "0.3.2" 2154 | resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" 2155 | integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== 2156 | 2157 | string-width@^4.1.0, string-width@^4.2.0: 2158 | version "4.2.3" 2159 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 2160 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 2161 | dependencies: 2162 | emoji-regex "^8.0.0" 2163 | is-fullwidth-code-point "^3.0.0" 2164 | strip-ansi "^6.0.1" 2165 | 2166 | string-width@^5.0.0: 2167 | version "5.1.2" 2168 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 2169 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 2170 | dependencies: 2171 | eastasianwidth "^0.2.0" 2172 | emoji-regex "^9.2.2" 2173 | strip-ansi "^7.0.1" 2174 | 2175 | string_decoder@^1.1.1: 2176 | version "1.3.0" 2177 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 2178 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 2179 | dependencies: 2180 | safe-buffer "~5.2.0" 2181 | 2182 | string_decoder@~0.10.x: 2183 | version "0.10.31" 2184 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 2185 | integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== 2186 | 2187 | string_decoder@~1.1.1: 2188 | version "1.1.1" 2189 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2190 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 2191 | dependencies: 2192 | safe-buffer "~5.1.0" 2193 | 2194 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 2195 | version "6.0.1" 2196 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 2197 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 2198 | dependencies: 2199 | ansi-regex "^5.0.1" 2200 | 2201 | strip-ansi@^7.0.1: 2202 | version "7.1.0" 2203 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 2204 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 2205 | dependencies: 2206 | ansi-regex "^6.0.1" 2207 | 2208 | strip-final-newline@^3.0.0: 2209 | version "3.0.0" 2210 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" 2211 | integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== 2212 | 2213 | strip-json-comments@^3.1.1: 2214 | version "3.1.1" 2215 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 2216 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 2217 | 2218 | supports-color@^7.1.0: 2219 | version "7.2.0" 2220 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2221 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2222 | dependencies: 2223 | has-flag "^4.0.0" 2224 | 2225 | text-table@^0.2.0: 2226 | version "0.2.0" 2227 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2228 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 2229 | 2230 | through@2, through@^2.3.8, through@~2.3, through@~2.3.1: 2231 | version "2.3.8" 2232 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2233 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 2234 | 2235 | to-regex-range@^5.0.1: 2236 | version "5.0.1" 2237 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2238 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2239 | dependencies: 2240 | is-number "^7.0.0" 2241 | 2242 | toidentifier@1.0.1: 2243 | version "1.0.1" 2244 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 2245 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 2246 | 2247 | trigram-utils@^0.1.0: 2248 | version "0.1.1" 2249 | resolved "https://registry.yarnpkg.com/trigram-utils/-/trigram-utils-0.1.1.tgz#7df8a092c9897fc2e09dac22f423e283231762e7" 2250 | integrity sha512-7ZPwE/Rr2Pvi/5HDVFtm6R3E7xYG8cSbr8xTdNORX1XzTzmvxI4TB44WDQOJOH6KhOkKc7kLAa55XtkirBwLQg== 2251 | dependencies: 2252 | n-gram "^0.1.0" 2253 | 2254 | ts-api-utils@^1.0.1: 2255 | version "1.0.1" 2256 | resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" 2257 | integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== 2258 | 2259 | tsc-watch@^6.0.4: 2260 | version "6.0.4" 2261 | resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-6.0.4.tgz#af15229f03cd53086771a97b10653db063bc6c59" 2262 | integrity sha512-cHvbvhjO86w2aGlaHgSCeQRl+Aqw6X6XN4sQMPZKF88GoP30O+oTuh5lRIJr5pgFWrRpF1AgXnJJ2DoFEIPHyg== 2263 | dependencies: 2264 | cross-spawn "^7.0.3" 2265 | node-cleanup "^2.1.2" 2266 | ps-tree "^1.2.0" 2267 | string-argv "^0.3.1" 2268 | 2269 | tslib@^2.1.0: 2270 | version "2.6.0" 2271 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" 2272 | integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== 2273 | 2274 | type-check@^0.4.0, type-check@~0.4.0: 2275 | version "0.4.0" 2276 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2277 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 2278 | dependencies: 2279 | prelude-ls "^1.2.1" 2280 | 2281 | type-fest@^0.20.2: 2282 | version "0.20.2" 2283 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2284 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2285 | 2286 | type-fest@^0.21.3: 2287 | version "0.21.3" 2288 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" 2289 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== 2290 | 2291 | type-is@^1.6.4, type-is@~1.6.18: 2292 | version "1.6.18" 2293 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 2294 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 2295 | dependencies: 2296 | media-typer "0.3.0" 2297 | mime-types "~2.1.24" 2298 | 2299 | typedarray@^0.0.6: 2300 | version "0.0.6" 2301 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 2302 | integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== 2303 | 2304 | typescript@^5.1.6: 2305 | version "5.1.6" 2306 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" 2307 | integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== 2308 | 2309 | unpipe@1.0.0, unpipe@~1.0.0: 2310 | version "1.0.0" 2311 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2312 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 2313 | 2314 | upndown@^2.0.2: 2315 | version "2.1.0" 2316 | resolved "https://registry.yarnpkg.com/upndown/-/upndown-2.1.0.tgz#e08684cd2b0c3a0b1d622aebdba1d2106bf0e4a8" 2317 | integrity sha512-35A8goPE0chjDrAWYWZqDOAGVVMVYIGBUhH4/8WJpPCh3Fn4NV7wTJbBlSEnDec3+MBreDGHAroyFITnsGhZEw== 2318 | dependencies: 2319 | htmlparser2 "^3.8.3" 2320 | 2321 | uri-js@^4.2.2: 2322 | version "4.4.1" 2323 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2324 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2325 | dependencies: 2326 | punycode "^2.1.0" 2327 | 2328 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 2329 | version "1.0.2" 2330 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2331 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 2332 | 2333 | utils-merge@1.0.1: 2334 | version "1.0.1" 2335 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2336 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 2337 | 2338 | vary@~1.1.2: 2339 | version "1.1.2" 2340 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2341 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 2342 | 2343 | verror@^1.8.1: 2344 | version "1.10.1" 2345 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" 2346 | integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== 2347 | dependencies: 2348 | assert-plus "^1.0.0" 2349 | core-util-is "1.0.2" 2350 | extsprintf "^1.2.0" 2351 | 2352 | which@^2.0.1: 2353 | version "2.0.2" 2354 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2355 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2356 | dependencies: 2357 | isexe "^2.0.0" 2358 | 2359 | wrap-ansi@^6.2.0: 2360 | version "6.2.0" 2361 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" 2362 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 2363 | dependencies: 2364 | ansi-styles "^4.0.0" 2365 | string-width "^4.1.0" 2366 | strip-ansi "^6.0.0" 2367 | 2368 | wrap-ansi@^7.0.0: 2369 | version "7.0.0" 2370 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2371 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2372 | dependencies: 2373 | ansi-styles "^4.0.0" 2374 | string-width "^4.1.0" 2375 | strip-ansi "^6.0.0" 2376 | 2377 | wrappy@1: 2378 | version "1.0.2" 2379 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2380 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2381 | 2382 | xregexp@^4.0.0: 2383 | version "4.4.1" 2384 | resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.4.1.tgz#c84a88fa79e9ab18ca543959712094492185fe65" 2385 | integrity sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag== 2386 | dependencies: 2387 | "@babel/runtime-corejs3" "^7.12.1" 2388 | 2389 | xtend@^4.0.0: 2390 | version "4.0.2" 2391 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 2392 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 2393 | 2394 | yallist@^4.0.0: 2395 | version "4.0.0" 2396 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2397 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2398 | 2399 | yaml@^2.2.2: 2400 | version "2.3.1" 2401 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" 2402 | integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== 2403 | 2404 | yocto-queue@^0.1.0: 2405 | version "0.1.0" 2406 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2407 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2408 | --------------------------------------------------------------------------------