├── Procfile ├── .gitignore ├── .env.sample ├── docs ├── usage.png ├── usage_en.png └── grant-integration.png ├── .prettierrc.yaml ├── src ├── utils.ts ├── logger.ts ├── app-env.ts ├── index.ts └── notion.ts ├── tsconfig.json ├── app.json ├── package.json ├── LICENSE ├── README.ja.md ├── README.md └── yarn.lock /Procfile: -------------------------------------------------------------------------------- 1 | web: yarn start -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | yarn-error.log 4 | .env 5 | -------------------------------------------------------------------------------- /.env.sample: -------------------------------------------------------------------------------- 1 | PORT=80 2 | NOTION_TOKEN="" 3 | SLACK_TOKEN="" 4 | SLACK_SIGNING_SECRET="" -------------------------------------------------------------------------------- /docs/usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anycloud-inc/slack-notion-preview/HEAD/docs/usage.png -------------------------------------------------------------------------------- /docs/usage_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anycloud-inc/slack-notion-preview/HEAD/docs/usage_en.png -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | trailingComma: "es5" 2 | tabWidth: 2 3 | semi: false 4 | singleQuote: true 5 | arrowParens: avoid -------------------------------------------------------------------------------- /docs/grant-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anycloud-inc/slack-notion-preview/HEAD/docs/grant-integration.png -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | export const getLastElement = (array: T[]): T | undefined => { 2 | return array.slice(-1)[0] 3 | } 4 | 5 | export const nonNullable = (value: T): value is NonNullable => 6 | value != null 7 | -------------------------------------------------------------------------------- /src/logger.ts: -------------------------------------------------------------------------------- 1 | import { appEnv } from './app-env' 2 | 3 | export const logger = { 4 | debug(...data: any[]) { 5 | if (appEnv.isProduction) return 6 | console.log('️⚪️', ...data) 7 | }, 8 | log(...data: any[]) { 9 | console.log('🔵', ...data) 10 | }, 11 | error(...data: any[]) { 12 | console.log('🔴', ...data) 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "sourceMap": true, 4 | "target": "es2019", 5 | "module": "commonjs", 6 | "moduleResolution": "node", 7 | "outDir": "./dist", 8 | "rootDir": ".", 9 | "baseUrl": ".", 10 | "strict": true, 11 | "esModuleInterop": true, 12 | "resolveJsonModule": true 13 | }, 14 | "exclude": ["node_modules"], 15 | "include": ["src", "*/**/*.json"] 16 | } -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slack-notion-preview", 3 | "description": "Slack App for unfurling private Notion URL", 4 | "repository": "https://github.com/anycloud-inc/slack-notion-preview", 5 | "image": "heroku/nodejs", 6 | "env": { 7 | "SLACK_TOKEN": { 8 | "description": "Slack OAuth Access Token" 9 | }, 10 | "SLACK_SIGNING_SECRET": { 11 | "description": "Slack Signing Secret to verify signature" 12 | }, 13 | "NOTION_TOKEN": { 14 | "description": "Notion Auth Token" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slack-notion-preview", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "dev": "ts-node-dev --poll --respawn --transpile-only --files ./src/index.ts", 7 | "build": "tsc -p .", 8 | "start": "NODE_ENV=production node dist/src/index.js" 9 | }, 10 | "dependencies": { 11 | "@notionhq/client": "^1.0.2", 12 | "@slack/bolt": "^3.10.0", 13 | "dotenv": "^16.0.0" 14 | }, 15 | "devDependencies": { 16 | "@types/node": "^17.0.21", 17 | "prettier": "^2.5.1", 18 | "ts-node": "^10.6.0", 19 | "ts-node-dev": "^1.1.8", 20 | "typescript": "^4.6.2" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/app-env.ts: -------------------------------------------------------------------------------- 1 | export class AppError extends Error { 2 | constructor(message: string) { 3 | super(message) 4 | this.name = this.constructor.name 5 | Error.captureStackTrace(this, this.constructor) 6 | } 7 | } 8 | 9 | export const appEnv = { 10 | init() { 11 | require('dotenv').config() 12 | }, 13 | 14 | get isProduction(): boolean { 15 | return process.env.NODE_ENV === 'production' 16 | }, 17 | 18 | get port(): number { 19 | return Number(process.env.PORT) || 80 20 | }, 21 | 22 | get notionToken(): string { 23 | return this._assertNonNull(process.env.NOTION_TOKEN) 24 | }, 25 | 26 | get slackToken(): string { 27 | return this._assertNonNull(process.env.SLACK_TOKEN) 28 | }, 29 | 30 | get slackSigningSecret(): string { 31 | return this._assertNonNull(process.env.SLACK_SIGNING_SECRET) 32 | }, 33 | 34 | _assertNonNull(value: string | undefined): string { 35 | if (value == null || value.length === 0) { 36 | throw new AppError(`Required properties not found in .env`) 37 | } 38 | return value 39 | }, 40 | } 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Anycloud 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { appEnv } from './app-env' 2 | appEnv.init() 3 | 4 | import { App as SlackApp, LogLevel } from '@slack/bolt' 5 | import { LinkUnfurls } from '@slack/web-api' 6 | import { logger } from './logger' 7 | import { notionService } from './notion' 8 | 9 | const slackApp = new SlackApp({ 10 | token: appEnv.slackToken, 11 | signingSecret: appEnv.slackSigningSecret, 12 | logLevel: appEnv.isProduction ? LogLevel.ERROR : LogLevel.DEBUG, 13 | }) 14 | 15 | // Remove &, which & sometimes escaped to, perhaps due to a bug in Slack. 16 | const sanitizeSlackLink = (url: string): string => { 17 | return url.replace(/amp;/g, '') 18 | } 19 | 20 | slackApp.event('link_shared', async ({ event, client }) => { 21 | let unfurls: LinkUnfurls = {} 22 | 23 | for (const link of event.links) { 24 | logger.debug(`handling ${link.url}`) 25 | if (!notionService.isNotionDomain(link.domain)) continue 26 | 27 | const url = new URL(sanitizeSlackLink(link.url)) 28 | const notionPageId = notionService.getPageIdFromUrl(url) 29 | 30 | if (notionPageId == null) { 31 | logger.error(`PageId not found in ${url}`) 32 | continue 33 | } 34 | const [pageData, text] = await Promise.all([ 35 | notionService.getPageData(notionPageId), 36 | notionService.getPageBody(notionPageId), 37 | ]) 38 | // Note that the key of the unfurl must be the same as the URL shared on slack. 39 | unfurls[link.url] = { 40 | title: pageData.title, 41 | text, 42 | title_link: link.url, 43 | footer: pageData.breadcrumbs.join(' / '), 44 | } 45 | } 46 | await client.chat.unfurl({ 47 | ts: event.message_ts, 48 | channel: event.channel, 49 | unfurls, 50 | }) 51 | }) 52 | 53 | const main = async () => { 54 | await slackApp.start({ port: appEnv.port, path: '/' }) 55 | console.log(`⚡️ Bolt app is listening ${appEnv.port}`) 56 | } 57 | 58 | main() 59 | -------------------------------------------------------------------------------- /README.ja.md: -------------------------------------------------------------------------------- 1 | # slack-notion-preview 2 | 3 | [English](/README.md) | 日本語 4 | 5 | ## Description 6 | 7 | private な Notion リンクが Slack に投稿された際に、それを展開してくれる Slack App です。 8 | 9 | ![Usage](docs/usage.png) 10 | 11 | ## Features 12 | 13 | - Notion の記事タイトル展開(プロパティは未対応) 14 | - Notion の記事コンテンツ展開 15 | - Heading 16 | - Paragraph 17 | - 箇条書きリスト 18 | - 番号リスト 19 | - TODO リスト 20 | 21 | ## Installation 22 | 23 | 1. Notion API の Integrations を Internal integrations で作成し、token を取得 24 | 2. Slack App 作成 25 | 3. slack-notion-preview のデプロイ 26 | 4. 2 で作った app に、3 の URL を登録する 27 | 5. Slack App の bot ユーザーをチャンネルに招待する 28 | 6. 展開したいページで Integration を許可する 29 | 30 | ### 1. Notion API の Integrations を Internal integrations で作成し、token を取得 31 | 32 | [Getting Started](https://developers.notion.com/docs/getting-started) を参考にしながらアクセストークンを取得してください。 33 | 34 | ### 2. Slack App の作成 35 | 36 | 1. https://api.slack.com/apps の Create New App からアプリ作成 37 | 2. 左メニュー OAuth & Permissions を開き、Scopes で link:write を追加 38 | 3. 左メニュー Event Subscriptions を開く 39 | - App unfurl domains を展開し、 Add Domain で、 `www.notion.so` を入力し、Save Changes 40 | 4. 左メニュー Install App を開き、 Install App to Workspace -> Allow 41 | 5. OAuth Access Token が表示されるのでメモ (`SLACK_TOKEN`) 42 | 6. Basic Information を開き App Credentials の Signing Secret をメモ (`SLACK_SIGNING_SECRET`) 43 | 44 | ※後で戻ってくるので、Slack App の管理画面は開いたままにしておく。 45 | 46 | ### 3. slack-notion-preview のデプロイ 47 | 48 | Node.js で書かれた Web アプリケーションなので、任意の場所で簡単に動かせますが、Heroku や Google App Engine を利用するのがより簡単でしょう。動作のためには以下の環境変数が必要です。 49 | 50 | - `NOTION_TOKEN`: 手順 1 で取得した Notion のアクセストークン 51 | - `SLACK_TOKEN`: 手順 2-5 で取得した Slack App のトークン 52 | - `SLACK_SIGNING_SECRET`: 手順 2-6 で取得したリクエスト署名検証 secret 53 | 54 | #### Heroku で動かす場合 55 | 56 | 以下のボタンからデプロイできます。 57 | 58 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/anycloud-inc/slack-notion-preview) 59 | 60 | ※ デプロイしたアプリの URL ルートにアクセスしてもページは表示されませんが仕様なので気にしないでください。 61 | 62 | ### 4. 2 で作った app に、3 の URL を登録する 63 | 64 | - 左メニュー Event Subscriptions を開く 65 | - Request URL に `3でデプロイしたアプリのURL/slack/events` を入力(e.g. https://your-app.herokuapp.com/slack/events) 66 | - Verified と表示されたら Enable Events を On にして Save Changes 67 | 68 | ### 5. Slack App の bot をチャンネルに招待する 69 | 70 | Bot 名は、左メニューの App Home から確認してください。 71 | 72 | ### 6. 展開したいページで Integration を許可する 73 | 74 | API 経由でのアクセスをするためには、そのページで Integration を許可する必要があります。 75 | ![Grant Integrations](docs/grant-integration.png) 76 | 77 | 現状ワークスペースレベルで全てのページを許可することはできないようです。 78 | とはいえ親ページで許可をすれば子孫のページでも適用されるため、サイドバーの各ページで許可をすれば面倒ですが解決は可能です。 79 | 80 | これで準備完了です。 81 | 82 | ## See Also 83 | 84 | slack-notion-preview は[MH4GF さんのリポジトリ](https://github.com/MH4GF/notion-deglacer)を参考に作られています。 85 | 特に README の大半をそのまま利用させていただいています。この場をお借りして御礼申し上げます。 86 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # slack-notion-preview 2 | 3 | ⚠️⚠️⚠️ 4 | 5 | **The official Slack x Notion app has been released and we recommend using the official app instead of this repository.** 6 | https://slack.com/apps/A049JV0H0KC-notion 7 | 8 | ⚠️⚠️⚠️ 9 | 10 | English | [日本語](/README.ja.md) 11 | 12 | ## Description 13 | 14 | A Slack App that shows a preview of a private Notion link posted to Slack. 15 | 16 | ![Usage](docs/usage_en.png) 17 | 18 | ## Features 19 | 20 | - Notion article title preview (properties not yet supported) 21 | - Notion article content preview 22 | - Heading 23 | - Paragraph 24 | - Bulleted list 25 | - Numbered list 26 | - TODO List 27 | 28 | ## Installation 29 | 30 | 1. Create Notion API Integrations with Internal integrations and obtain a token 31 | 2. Create Slack App 32 | 3. Deploy slack-notion-preview 33 | 4. Register the URL of step 3 to the app created in step 2 34 | 5. Invite Slack App bot users to the channel 35 | 6. Allow Integration on the pages you want to unfurl 36 | 37 | ### STEP 1: Create Integrations for Notion API with Internal integrations and get a token. 38 | 39 | Refer to [Getting Started](https://developers.notion.com/docs/getting-started) to obtain an access token. 40 | 41 | ### STEP 2: Creating Slack App 42 | 43 | 1. Create an app from `Create New App` at https://api.slack.com/apps 44 | 2. Open `OAuth & Permissions` in the left menu and add `link:write` in Scopes. 45 | 3. Open `Event Subscriptions` from the left menu. 46 | - Expand `App unfurl domains`, under `Add Domain`, enter `www.notion.so`, and save changes. 47 | 4. Open `Install App` from the left menu, set `Install App to Workspace` to `Allow` 48 | 5. Note the `OAuth Access Token` when it appears (`SLACK_TOKEN`) 49 | 6. Open `Basic Information` and note `Signing Secret` in `App Credentials` (`SLACK_SIGNING_SECRET`) 50 | 51 | ※ Leave the Slack App admin screen open, as you will return to it later. 52 | 53 | ### STEP 3: Deploy slack-notion-preview 54 | 55 | Since it is a web application written in Node.js, it can easily be run anywhere, but using Heroku or Google App Engine is probably easier. The following environment variables are required for operation. 56 | 57 | - `NOTION_TOKEN`: Notion's access token obtained in step 1 58 | - `SLACK_TOKEN`: Slack App token obtained in steps 2-5 59 | - `SLACK_SIGNING_SECRET`: Request signature verification secret obtained in step 2-6 60 | 61 | #### Running on Heroku 62 | 63 | You can deploy from the following button 64 | 65 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/anycloud-inc/slack-notion-preview) 66 | 67 | ※ The page will not be displayed even if you access the URL root of the deployed app, but this is just a specification, so don't worry about it. 68 | 69 | ### STEP 4: Register the URL of STEP 3 to the app created in STEP 2. 70 | 71 | - Open the left menu `Event Subscriptions` 72 | - Enter `{URL of the app deployed in STEP 3}/slack/events` in Request URL (e.g. https://your-app.herokuapp.com/slack/events) 73 | - When `Verified` is displayed, turn `Enable Events` on and save changes. 74 | 75 | ### STEP 5: Invite Slack App bot to the channel. 76 | 77 | Check the Bot name from App Home on the left menu. 78 | 79 | ### STEP 6: Allow Integration on the page you want to deploy. 80 | 81 | In order to access via API, Integration must be allowed on that page. 82 | ![Grant Integrations](docs/grant-integration.png) 83 | 84 | Currently, it does not seem possible to allow all pages at the workspace level. 85 | However, if you allow it on the parent page, it will be applied to the descendant pages, so it is possible to solve this problem, although it is troublesome to allow it on each page in the sidebar. 86 | 87 | Now you are ready to go. 88 | -------------------------------------------------------------------------------- /src/notion.ts: -------------------------------------------------------------------------------- 1 | import { Client } from '@notionhq/client' 2 | import { 3 | GetBlockResponse, 4 | GetPageResponse, 5 | } from '@notionhq/client/build/src/api-endpoints' 6 | import { appEnv } from './app-env' 7 | import { logger } from './logger' 8 | import { getLastElement } from './utils' 9 | 10 | export const notionClient = new Client({ 11 | auth: appEnv.notionToken, 12 | }) 13 | 14 | const INDENT = ' ' 15 | const NEWLINE = '\n' 16 | 17 | export const notionService = { 18 | async getPageData( 19 | pageId: string, 20 | options = { 21 | breadcrumbsDepth: 2, 22 | } 23 | ): Promise<{ title: string; breadcrumbs: string[] }> { 24 | const page = await notionClient.pages.retrieve({ page_id: pageId }) 25 | return { 26 | title: helper.getPageTitle(page), 27 | breadcrumbs: await helper.getPageBreadcrumbs(page, options), 28 | } 29 | }, 30 | 31 | async getPageBody( 32 | pageId: string, 33 | options = { 34 | blockCount: 20, 35 | indent: 0, 36 | depth: 3, 37 | } 38 | ): Promise { 39 | const blocks = await notionClient.blocks.children.list({ 40 | block_id: pageId, 41 | }) 42 | 43 | let text = '' 44 | for (const block of blocks.results.slice(0, options.blockCount)) { 45 | const blockContent = helper.getBlockContent(block) 46 | if (blockContent.length > 0) { 47 | text += INDENT.repeat(options.indent) 48 | text += blockContent 49 | text += NEWLINE 50 | } 51 | 52 | // Retrieving children content 53 | if ('has_children' in block && block.has_children && options.depth > 0) { 54 | text += await this.getPageBody(block.id, { 55 | blockCount: options.blockCount, 56 | indent: options.indent + 1, 57 | depth: options.depth - 1, 58 | }) 59 | } 60 | } 61 | return text 62 | }, 63 | 64 | isNotionDomain: (domain: string): boolean => { 65 | return domain.match(/(www\.)?notion.so/) != null 66 | }, 67 | 68 | getPageIdFromUrl: (url: URL): string | undefined => { 69 | // In case of modal display, pageId is in query 'p'. 70 | // e.g. https://www.notion.so/example/my-title-571bb99b29e040eb8a46c2f9b7d138af?p=5daca1bba9ce4ed0bf7a5d348ac9a81d 71 | const queryId = url.searchParams.get('p') 72 | if (queryId != null) { 73 | return queryId 74 | } 75 | 76 | // In case of page display, pageId is the terminal part of the path separated by '-'. 77 | // e.g. https://www.notion.so/example/my-title-571bb99b29e040eb8a46c2f9b7d138af 78 | const pathLast = getLastElement(url.pathname.split('/')) 79 | return getLastElement(pathLast?.split('-') ?? []) 80 | }, 81 | } 82 | 83 | const helper = { 84 | getPageTitle(page: GetPageResponse): string { 85 | let title = '' 86 | // Descriminating union 87 | if (!('properties' in page)) { 88 | logger.error(`properties not found in ${page}`) 89 | return title 90 | } 91 | for (const property of Object.values(page.properties)) { 92 | // Descriminating union 93 | if (property.type !== 'title') continue 94 | title = property.title.map(x => x.plain_text).join('') 95 | } 96 | return title 97 | }, 98 | 99 | async getPageBreadcrumbs( 100 | page: GetPageResponse, 101 | options = { breadcrumbsDepth: 2 } 102 | ): Promise { 103 | if (options.breadcrumbsDepth <= 0) { 104 | return [] 105 | } 106 | // Descriminating union 107 | if (!('parent' in page)) { 108 | logger.error(`parent not found in ${page}`) 109 | return [] 110 | } 111 | 112 | let breadcrumbs: string[] = [this.getPageTitle(page)] 113 | 114 | // Retrieving breadcrumbs 115 | if (page.parent.type === 'database_id') { 116 | const parentData = await this.getDatabaseData(page.parent.database_id, { 117 | breadcrumbsDepth: options.breadcrumbsDepth - 1, 118 | }) 119 | breadcrumbs = parentData.breadcrumbs.concat(breadcrumbs) 120 | } 121 | if (page.parent.type === 'page_id') { 122 | const parentData = await notionService.getPageData(page.parent.page_id, { 123 | breadcrumbsDepth: options.breadcrumbsDepth - 1, 124 | }) 125 | breadcrumbs = parentData.breadcrumbs.concat(breadcrumbs) 126 | } 127 | return breadcrumbs 128 | }, 129 | 130 | async getDatabaseData( 131 | databaseId: string, 132 | options = { 133 | breadcrumbsDepth: 2, 134 | } 135 | ): Promise<{ breadcrumbs: string[] }> { 136 | const database = await notionClient.databases.retrieve({ 137 | database_id: databaseId, 138 | }) 139 | 140 | // Descriminating union 141 | if (!('parent' in database)) { 142 | logger.error(`parent not found in ${database}`) 143 | return { breadcrumbs: [] } 144 | } 145 | 146 | if (database.parent.type !== 'page_id' || options.breadcrumbsDepth <= 0) { 147 | return { breadcrumbs: [] } 148 | } 149 | 150 | const parentData = await notionService.getPageData( 151 | database.parent.page_id, 152 | { 153 | // Database name is not included in breadcrumbs, so do not change the depth. 154 | breadcrumbsDepth: options.breadcrumbsDepth, 155 | } 156 | ) 157 | return { breadcrumbs: parentData.breadcrumbs } 158 | }, 159 | 160 | getBlockContent(block: GetBlockResponse): string { 161 | if (!('type' in block)) return '' 162 | switch (block.type) { 163 | case 'paragraph': 164 | return block.paragraph.rich_text.map(x => x.plain_text).join('') 165 | 166 | case 'heading_1': 167 | return '# ' + block.heading_1.rich_text.map(x => x.plain_text).join('') 168 | 169 | case 'heading_2': 170 | return '## ' + block.heading_2.rich_text.map(x => x.plain_text).join('') 171 | 172 | case 'heading_3': 173 | return ( 174 | '### ' + block.heading_3.rich_text.map(x => x.plain_text).join('') 175 | ) 176 | 177 | case 'to_do': 178 | const checkMark = block.to_do.checked ? 'x' : ' ' 179 | return ( 180 | `- [${checkMark}] ` + 181 | block.to_do.rich_text.map(x => x.plain_text).join('') 182 | ) 183 | 184 | case 'bulleted_list_item': 185 | return ( 186 | '・' + 187 | block.bulleted_list_item.rich_text.map(x => x.plain_text).join('') 188 | ) 189 | 190 | case 'numbered_list_item': 191 | // TODO: We should give sequential numbers for numbered list 192 | return ( 193 | '・' + 194 | block.numbered_list_item.rich_text.map(x => x.plain_text).join('') 195 | ) 196 | 197 | default: 198 | logger.debug(`Unsupported type: ${block.type}`) 199 | return '' 200 | } 201 | }, 202 | } 203 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cspotcode/source-map-consumer@0.8.0": 6 | version "0.8.0" 7 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" 8 | integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== 9 | 10 | "@cspotcode/source-map-support@0.7.0": 11 | version "0.7.0" 12 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" 13 | integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== 14 | dependencies: 15 | "@cspotcode/source-map-consumer" "0.8.0" 16 | 17 | "@notionhq/client@^1.0.2": 18 | version "1.0.2" 19 | resolved "https://registry.yarnpkg.com/@notionhq/client/-/client-1.0.2.tgz#cdd9a13d82b9497c6ac1ed5829c31c50974aedda" 20 | integrity sha512-i6jakmGLg/Iz9CVJ63v7V+kTnMLeDR8G/J5tc3cOEC/wH8Uh0xD4SCeUv4iRXCkrFkQ9zdJ7QGo9XUvefMDXJQ== 21 | dependencies: 22 | "@types/node-fetch" "^2.5.10" 23 | node-fetch "^2.6.1" 24 | 25 | "@slack/bolt@^3.10.0": 26 | version "3.10.0" 27 | resolved "https://registry.yarnpkg.com/@slack/bolt/-/bolt-3.10.0.tgz#d8c24d7f5a456372402a35e121fb66c74b333e58" 28 | integrity sha512-M3d7qwjBVRdgmhsw7ikVFtxm8VHWYV+hvMWulKmzF0g8K9xc5SaRhnMn3LsG3cSe1nKTiaoOPYcw6v6TuJp6gg== 29 | dependencies: 30 | "@slack/logger" "^3.0.0" 31 | "@slack/oauth" "^2.4.0" 32 | "@slack/socket-mode" "^1.2.0" 33 | "@slack/types" "^2.4.0" 34 | "@slack/web-api" "^6.7.0" 35 | "@types/express" "^4.16.1" 36 | "@types/node" ">=12" 37 | "@types/promise.allsettled" "^1.0.3" 38 | "@types/tsscmp" "^1.0.0" 39 | axios "^0.21.4" 40 | express "^4.16.4" 41 | please-upgrade-node "^3.2.0" 42 | promise.allsettled "^1.0.2" 43 | raw-body "^2.3.3" 44 | tsscmp "^1.0.6" 45 | 46 | "@slack/logger@^3.0.0": 47 | version "3.0.0" 48 | resolved "https://registry.yarnpkg.com/@slack/logger/-/logger-3.0.0.tgz#b736d4e1c112c22a10ffab0c2d364620aedcb714" 49 | integrity sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA== 50 | dependencies: 51 | "@types/node" ">=12.0.0" 52 | 53 | "@slack/oauth@^2.4.0": 54 | version "2.4.0" 55 | resolved "https://registry.yarnpkg.com/@slack/oauth/-/oauth-2.4.0.tgz#996d5e9f77d31e17f97711ffcad5f6542a027d71" 56 | integrity sha512-Ct3eLGE8fb9ubBJdFV4JvjMU7Ds69xl1XQeJ9wFlapiHG/MDp2rUjSIPFMcQ4NT5E0yv5QjzHrGSa6D5XYaoEA== 57 | dependencies: 58 | "@slack/logger" "^3.0.0" 59 | "@slack/web-api" "^6.3.0" 60 | "@types/jsonwebtoken" "^8.3.7" 61 | "@types/node" ">=12" 62 | jsonwebtoken "^8.5.1" 63 | lodash.isstring "^4.0.1" 64 | 65 | "@slack/socket-mode@^1.2.0": 66 | version "1.2.0" 67 | resolved "https://registry.yarnpkg.com/@slack/socket-mode/-/socket-mode-1.2.0.tgz#1a64fa3b5e864e7495391e142ad56ff0a80193c8" 68 | integrity sha512-k+WAeMoeiivome/cfscyAHfVFL8/mPhz3p6NIz/LA9vJ1nv2cEPow/wLqzWM73xqlHARCxQWh3gqLqCPHvhXbg== 69 | dependencies: 70 | "@slack/logger" "^3.0.0" 71 | "@slack/web-api" "^6.2.3" 72 | "@types/node" ">=12.0.0" 73 | "@types/p-queue" "^2.3.2" 74 | "@types/ws" "^7.4.7" 75 | eventemitter3 "^3.1.0" 76 | finity "^0.5.4" 77 | p-cancelable "^1.1.0" 78 | p-queue "^2.4.2" 79 | ws "^7.5.3" 80 | 81 | "@slack/types@^2.0.0", "@slack/types@^2.4.0": 82 | version "2.4.0" 83 | resolved "https://registry.yarnpkg.com/@slack/types/-/types-2.4.0.tgz#b6f6d50e9181f723080b841302e089739cef512d" 84 | integrity sha512-0k8UlVEH9gUVwTbwcanS1JT2vCROkr1WESgdXW7d2maWYTuwbVEx87YvXPjsemAJfdu+RYqxGhO2oGTigprepA== 85 | 86 | "@slack/web-api@^6.2.3", "@slack/web-api@^6.3.0", "@slack/web-api@^6.7.0": 87 | version "6.7.0" 88 | resolved "https://registry.yarnpkg.com/@slack/web-api/-/web-api-6.7.0.tgz#86e326d84a41aea1a1d12394d1eb94f95bbb584e" 89 | integrity sha512-Jd0ZC/aolkdeM2m3j0SYASlzoUe1AWgm19eDkmGjfli6CzoW1benYHqgMh1owS7+gLfe4FEILtE0fyVDZjgmGQ== 90 | dependencies: 91 | "@slack/logger" "^3.0.0" 92 | "@slack/types" "^2.0.0" 93 | "@types/is-stream" "^1.1.0" 94 | "@types/node" ">=12.0.0" 95 | axios "^0.25.0" 96 | eventemitter3 "^3.1.0" 97 | form-data "^2.5.0" 98 | is-electron "2.2.0" 99 | is-stream "^1.1.0" 100 | p-queue "^6.6.1" 101 | p-retry "^4.0.0" 102 | 103 | "@tsconfig/node10@^1.0.7": 104 | version "1.0.8" 105 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 106 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 107 | 108 | "@tsconfig/node12@^1.0.7": 109 | version "1.0.9" 110 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 111 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 112 | 113 | "@tsconfig/node14@^1.0.0": 114 | version "1.0.1" 115 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 116 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 117 | 118 | "@tsconfig/node16@^1.0.2": 119 | version "1.0.2" 120 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 121 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 122 | 123 | "@types/body-parser@*": 124 | version "1.19.2" 125 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" 126 | integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== 127 | dependencies: 128 | "@types/connect" "*" 129 | "@types/node" "*" 130 | 131 | "@types/connect@*": 132 | version "3.4.35" 133 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" 134 | integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== 135 | dependencies: 136 | "@types/node" "*" 137 | 138 | "@types/express-serve-static-core@^4.17.18": 139 | version "4.17.28" 140 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" 141 | integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== 142 | dependencies: 143 | "@types/node" "*" 144 | "@types/qs" "*" 145 | "@types/range-parser" "*" 146 | 147 | "@types/express@^4.16.1": 148 | version "4.17.13" 149 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" 150 | integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== 151 | dependencies: 152 | "@types/body-parser" "*" 153 | "@types/express-serve-static-core" "^4.17.18" 154 | "@types/qs" "*" 155 | "@types/serve-static" "*" 156 | 157 | "@types/is-stream@^1.1.0": 158 | version "1.1.0" 159 | resolved "https://registry.yarnpkg.com/@types/is-stream/-/is-stream-1.1.0.tgz#b84d7bb207a210f2af9bed431dc0fbe9c4143be1" 160 | integrity sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg== 161 | dependencies: 162 | "@types/node" "*" 163 | 164 | "@types/jsonwebtoken@^8.3.7": 165 | version "8.5.8" 166 | resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz#01b39711eb844777b7af1d1f2b4cf22fda1c0c44" 167 | integrity sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A== 168 | dependencies: 169 | "@types/node" "*" 170 | 171 | "@types/mime@^1": 172 | version "1.3.2" 173 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" 174 | integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== 175 | 176 | "@types/node-fetch@^2.5.10": 177 | version "2.6.1" 178 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" 179 | integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== 180 | dependencies: 181 | "@types/node" "*" 182 | form-data "^3.0.0" 183 | 184 | "@types/node@*", "@types/node@>=12", "@types/node@>=12.0.0", "@types/node@^17.0.21": 185 | version "17.0.21" 186 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" 187 | integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== 188 | 189 | "@types/p-queue@^2.3.2": 190 | version "2.3.2" 191 | resolved "https://registry.yarnpkg.com/@types/p-queue/-/p-queue-2.3.2.tgz#16bc5fece69ef85efaf2bce8b13f3ebe39c5a1c8" 192 | integrity sha512-eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ== 193 | 194 | "@types/promise.allsettled@^1.0.3": 195 | version "1.0.3" 196 | resolved "https://registry.yarnpkg.com/@types/promise.allsettled/-/promise.allsettled-1.0.3.tgz#6f3166618226a570b98c8250fc78687a912e56d5" 197 | integrity sha512-b/IFHHTkYkTqu41IH9UtpICwqrpKj2oNlb4KHPzFQDMiz+h1BgAeATeO0/XTph4+UkH9W2U0E4B4j64KWOovag== 198 | 199 | "@types/qs@*": 200 | version "6.9.7" 201 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" 202 | integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== 203 | 204 | "@types/range-parser@*": 205 | version "1.2.4" 206 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" 207 | integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== 208 | 209 | "@types/retry@^0.12.0": 210 | version "0.12.1" 211 | resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" 212 | integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== 213 | 214 | "@types/serve-static@*": 215 | version "1.13.10" 216 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" 217 | integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== 218 | dependencies: 219 | "@types/mime" "^1" 220 | "@types/node" "*" 221 | 222 | "@types/strip-bom@^3.0.0": 223 | version "3.0.0" 224 | resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" 225 | integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= 226 | 227 | "@types/strip-json-comments@0.0.30": 228 | version "0.0.30" 229 | resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" 230 | integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== 231 | 232 | "@types/tsscmp@^1.0.0": 233 | version "1.0.0" 234 | resolved "https://registry.yarnpkg.com/@types/tsscmp/-/tsscmp-1.0.0.tgz#761c885a530f9673ae6fda0cae38253ffd46cba6" 235 | integrity sha512-rj18XR6c4Ohds86Lq8MI1NMRrXes4eLo4H06e5bJyKucE1rXGsfBBbFGD2oDC+DSufQCpnU3TTW7QAiwLx+7Yw== 236 | 237 | "@types/ws@^7.4.7": 238 | version "7.4.7" 239 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" 240 | integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== 241 | dependencies: 242 | "@types/node" "*" 243 | 244 | accepts@~1.3.8: 245 | version "1.3.8" 246 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 247 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 248 | dependencies: 249 | mime-types "~2.1.34" 250 | negotiator "0.6.3" 251 | 252 | acorn-walk@^8.1.1: 253 | version "8.2.0" 254 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 255 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 256 | 257 | acorn@^8.4.1: 258 | version "8.7.0" 259 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 260 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 261 | 262 | anymatch@~3.1.2: 263 | version "3.1.2" 264 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 265 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 266 | dependencies: 267 | normalize-path "^3.0.0" 268 | picomatch "^2.0.4" 269 | 270 | arg@^4.1.0: 271 | version "4.1.3" 272 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 273 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 274 | 275 | array-flatten@1.1.1: 276 | version "1.1.1" 277 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 278 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 279 | 280 | array.prototype.map@^1.0.4: 281 | version "1.0.4" 282 | resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.4.tgz#0d97b640cfdd036c1b41cfe706a5e699aa0711f2" 283 | integrity sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA== 284 | dependencies: 285 | call-bind "^1.0.2" 286 | define-properties "^1.1.3" 287 | es-abstract "^1.19.0" 288 | es-array-method-boxes-properly "^1.0.0" 289 | is-string "^1.0.7" 290 | 291 | asynckit@^0.4.0: 292 | version "0.4.0" 293 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 294 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 295 | 296 | axios@^0.21.4: 297 | version "0.21.4" 298 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" 299 | integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== 300 | dependencies: 301 | follow-redirects "^1.14.0" 302 | 303 | axios@^0.25.0: 304 | version "0.25.0" 305 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" 306 | integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g== 307 | dependencies: 308 | follow-redirects "^1.14.7" 309 | 310 | balanced-match@^1.0.0: 311 | version "1.0.2" 312 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 313 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 314 | 315 | binary-extensions@^2.0.0: 316 | version "2.2.0" 317 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 318 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 319 | 320 | body-parser@1.19.2: 321 | version "1.19.2" 322 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" 323 | integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== 324 | dependencies: 325 | bytes "3.1.2" 326 | content-type "~1.0.4" 327 | debug "2.6.9" 328 | depd "~1.1.2" 329 | http-errors "1.8.1" 330 | iconv-lite "0.4.24" 331 | on-finished "~2.3.0" 332 | qs "6.9.7" 333 | raw-body "2.4.3" 334 | type-is "~1.6.18" 335 | 336 | brace-expansion@^1.1.7: 337 | version "1.1.11" 338 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 339 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 340 | dependencies: 341 | balanced-match "^1.0.0" 342 | concat-map "0.0.1" 343 | 344 | braces@~3.0.2: 345 | version "3.0.2" 346 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 347 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 348 | dependencies: 349 | fill-range "^7.0.1" 350 | 351 | buffer-equal-constant-time@1.0.1: 352 | version "1.0.1" 353 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 354 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 355 | 356 | buffer-from@^1.0.0: 357 | version "1.1.2" 358 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 359 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 360 | 361 | bytes@3.1.2: 362 | version "3.1.2" 363 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 364 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 365 | 366 | call-bind@^1.0.0, call-bind@^1.0.2: 367 | version "1.0.2" 368 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 369 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 370 | dependencies: 371 | function-bind "^1.1.1" 372 | get-intrinsic "^1.0.2" 373 | 374 | chokidar@^3.5.1: 375 | version "3.5.3" 376 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 377 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 378 | dependencies: 379 | anymatch "~3.1.2" 380 | braces "~3.0.2" 381 | glob-parent "~5.1.2" 382 | is-binary-path "~2.1.0" 383 | is-glob "~4.0.1" 384 | normalize-path "~3.0.0" 385 | readdirp "~3.6.0" 386 | optionalDependencies: 387 | fsevents "~2.3.2" 388 | 389 | combined-stream@^1.0.6, combined-stream@^1.0.8: 390 | version "1.0.8" 391 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 392 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 393 | dependencies: 394 | delayed-stream "~1.0.0" 395 | 396 | concat-map@0.0.1: 397 | version "0.0.1" 398 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 399 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 400 | 401 | content-disposition@0.5.4: 402 | version "0.5.4" 403 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 404 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 405 | dependencies: 406 | safe-buffer "5.2.1" 407 | 408 | content-type@~1.0.4: 409 | version "1.0.4" 410 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 411 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 412 | 413 | cookie-signature@1.0.6: 414 | version "1.0.6" 415 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 416 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 417 | 418 | cookie@0.4.2: 419 | version "0.4.2" 420 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" 421 | integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== 422 | 423 | create-require@^1.1.0: 424 | version "1.1.1" 425 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 426 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 427 | 428 | debug@2.6.9: 429 | version "2.6.9" 430 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 431 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 432 | dependencies: 433 | ms "2.0.0" 434 | 435 | define-properties@^1.1.3: 436 | version "1.1.3" 437 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 438 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 439 | dependencies: 440 | object-keys "^1.0.12" 441 | 442 | delayed-stream@~1.0.0: 443 | version "1.0.0" 444 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 445 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 446 | 447 | depd@2.0.0: 448 | version "2.0.0" 449 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 450 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 451 | 452 | depd@~1.1.2: 453 | version "1.1.2" 454 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 455 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 456 | 457 | destroy@~1.0.4: 458 | version "1.0.4" 459 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 460 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 461 | 462 | diff@^4.0.1: 463 | version "4.0.2" 464 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 465 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 466 | 467 | dotenv@^16.0.0: 468 | version "16.0.0" 469 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" 470 | integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== 471 | 472 | dynamic-dedupe@^0.3.0: 473 | version "0.3.0" 474 | resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" 475 | integrity sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE= 476 | dependencies: 477 | xtend "^4.0.0" 478 | 479 | ecdsa-sig-formatter@1.0.11: 480 | version "1.0.11" 481 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 482 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 483 | dependencies: 484 | safe-buffer "^5.0.1" 485 | 486 | ee-first@1.1.1: 487 | version "1.1.1" 488 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 489 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 490 | 491 | encodeurl@~1.0.2: 492 | version "1.0.2" 493 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 494 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 495 | 496 | es-abstract@^1.19.0, es-abstract@^1.19.1: 497 | version "1.19.1" 498 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" 499 | integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== 500 | dependencies: 501 | call-bind "^1.0.2" 502 | es-to-primitive "^1.2.1" 503 | function-bind "^1.1.1" 504 | get-intrinsic "^1.1.1" 505 | get-symbol-description "^1.0.0" 506 | has "^1.0.3" 507 | has-symbols "^1.0.2" 508 | internal-slot "^1.0.3" 509 | is-callable "^1.2.4" 510 | is-negative-zero "^2.0.1" 511 | is-regex "^1.1.4" 512 | is-shared-array-buffer "^1.0.1" 513 | is-string "^1.0.7" 514 | is-weakref "^1.0.1" 515 | object-inspect "^1.11.0" 516 | object-keys "^1.1.1" 517 | object.assign "^4.1.2" 518 | string.prototype.trimend "^1.0.4" 519 | string.prototype.trimstart "^1.0.4" 520 | unbox-primitive "^1.0.1" 521 | 522 | es-array-method-boxes-properly@^1.0.0: 523 | version "1.0.0" 524 | resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" 525 | integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== 526 | 527 | es-get-iterator@^1.0.2: 528 | version "1.1.2" 529 | resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" 530 | integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== 531 | dependencies: 532 | call-bind "^1.0.2" 533 | get-intrinsic "^1.1.0" 534 | has-symbols "^1.0.1" 535 | is-arguments "^1.1.0" 536 | is-map "^2.0.2" 537 | is-set "^2.0.2" 538 | is-string "^1.0.5" 539 | isarray "^2.0.5" 540 | 541 | es-to-primitive@^1.2.1: 542 | version "1.2.1" 543 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 544 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 545 | dependencies: 546 | is-callable "^1.1.4" 547 | is-date-object "^1.0.1" 548 | is-symbol "^1.0.2" 549 | 550 | escape-html@~1.0.3: 551 | version "1.0.3" 552 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 553 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 554 | 555 | etag@~1.8.1: 556 | version "1.8.1" 557 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 558 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 559 | 560 | eventemitter3@^3.1.0: 561 | version "3.1.2" 562 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" 563 | integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== 564 | 565 | eventemitter3@^4.0.4: 566 | version "4.0.7" 567 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 568 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 569 | 570 | express@^4.16.4: 571 | version "4.17.3" 572 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" 573 | integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== 574 | dependencies: 575 | accepts "~1.3.8" 576 | array-flatten "1.1.1" 577 | body-parser "1.19.2" 578 | content-disposition "0.5.4" 579 | content-type "~1.0.4" 580 | cookie "0.4.2" 581 | cookie-signature "1.0.6" 582 | debug "2.6.9" 583 | depd "~1.1.2" 584 | encodeurl "~1.0.2" 585 | escape-html "~1.0.3" 586 | etag "~1.8.1" 587 | finalhandler "~1.1.2" 588 | fresh "0.5.2" 589 | merge-descriptors "1.0.1" 590 | methods "~1.1.2" 591 | on-finished "~2.3.0" 592 | parseurl "~1.3.3" 593 | path-to-regexp "0.1.7" 594 | proxy-addr "~2.0.7" 595 | qs "6.9.7" 596 | range-parser "~1.2.1" 597 | safe-buffer "5.2.1" 598 | send "0.17.2" 599 | serve-static "1.14.2" 600 | setprototypeof "1.2.0" 601 | statuses "~1.5.0" 602 | type-is "~1.6.18" 603 | utils-merge "1.0.1" 604 | vary "~1.1.2" 605 | 606 | fill-range@^7.0.1: 607 | version "7.0.1" 608 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 609 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 610 | dependencies: 611 | to-regex-range "^5.0.1" 612 | 613 | finalhandler@~1.1.2: 614 | version "1.1.2" 615 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 616 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 617 | dependencies: 618 | debug "2.6.9" 619 | encodeurl "~1.0.2" 620 | escape-html "~1.0.3" 621 | on-finished "~2.3.0" 622 | parseurl "~1.3.3" 623 | statuses "~1.5.0" 624 | unpipe "~1.0.0" 625 | 626 | finity@^0.5.4: 627 | version "0.5.4" 628 | resolved "https://registry.yarnpkg.com/finity/-/finity-0.5.4.tgz#f2a8a9198e8286467328ec32c8bfcc19a2229c11" 629 | integrity sha512-3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA== 630 | 631 | follow-redirects@^1.14.0, follow-redirects@^1.14.7: 632 | version "1.14.9" 633 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" 634 | integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== 635 | 636 | form-data@^2.5.0: 637 | version "2.5.1" 638 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" 639 | integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== 640 | dependencies: 641 | asynckit "^0.4.0" 642 | combined-stream "^1.0.6" 643 | mime-types "^2.1.12" 644 | 645 | form-data@^3.0.0: 646 | version "3.0.1" 647 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" 648 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== 649 | dependencies: 650 | asynckit "^0.4.0" 651 | combined-stream "^1.0.8" 652 | mime-types "^2.1.12" 653 | 654 | forwarded@0.2.0: 655 | version "0.2.0" 656 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 657 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 658 | 659 | fresh@0.5.2: 660 | version "0.5.2" 661 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 662 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 663 | 664 | fs.realpath@^1.0.0: 665 | version "1.0.0" 666 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 667 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 668 | 669 | fsevents@~2.3.2: 670 | version "2.3.2" 671 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 672 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 673 | 674 | function-bind@^1.1.1: 675 | version "1.1.1" 676 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 677 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 678 | 679 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 680 | version "1.1.1" 681 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 682 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 683 | dependencies: 684 | function-bind "^1.1.1" 685 | has "^1.0.3" 686 | has-symbols "^1.0.1" 687 | 688 | get-symbol-description@^1.0.0: 689 | version "1.0.0" 690 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 691 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 692 | dependencies: 693 | call-bind "^1.0.2" 694 | get-intrinsic "^1.1.1" 695 | 696 | glob-parent@~5.1.2: 697 | version "5.1.2" 698 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 699 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 700 | dependencies: 701 | is-glob "^4.0.1" 702 | 703 | glob@^7.1.3: 704 | version "7.2.0" 705 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 706 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 707 | dependencies: 708 | fs.realpath "^1.0.0" 709 | inflight "^1.0.4" 710 | inherits "2" 711 | minimatch "^3.0.4" 712 | once "^1.3.0" 713 | path-is-absolute "^1.0.0" 714 | 715 | has-bigints@^1.0.1: 716 | version "1.0.1" 717 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 718 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 719 | 720 | has-symbols@^1.0.1, has-symbols@^1.0.2: 721 | version "1.0.3" 722 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 723 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 724 | 725 | has-tostringtag@^1.0.0: 726 | version "1.0.0" 727 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 728 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 729 | dependencies: 730 | has-symbols "^1.0.2" 731 | 732 | has@^1.0.3: 733 | version "1.0.3" 734 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 735 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 736 | dependencies: 737 | function-bind "^1.1.1" 738 | 739 | http-errors@1.8.1: 740 | version "1.8.1" 741 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" 742 | integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== 743 | dependencies: 744 | depd "~1.1.2" 745 | inherits "2.0.4" 746 | setprototypeof "1.2.0" 747 | statuses ">= 1.5.0 < 2" 748 | toidentifier "1.0.1" 749 | 750 | http-errors@2.0.0: 751 | version "2.0.0" 752 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 753 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 754 | dependencies: 755 | depd "2.0.0" 756 | inherits "2.0.4" 757 | setprototypeof "1.2.0" 758 | statuses "2.0.1" 759 | toidentifier "1.0.1" 760 | 761 | iconv-lite@0.4.24: 762 | version "0.4.24" 763 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 764 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 765 | dependencies: 766 | safer-buffer ">= 2.1.2 < 3" 767 | 768 | inflight@^1.0.4: 769 | version "1.0.6" 770 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 771 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 772 | dependencies: 773 | once "^1.3.0" 774 | wrappy "1" 775 | 776 | inherits@2, inherits@2.0.4: 777 | version "2.0.4" 778 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 779 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 780 | 781 | internal-slot@^1.0.3: 782 | version "1.0.3" 783 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" 784 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 785 | dependencies: 786 | get-intrinsic "^1.1.0" 787 | has "^1.0.3" 788 | side-channel "^1.0.4" 789 | 790 | ipaddr.js@1.9.1: 791 | version "1.9.1" 792 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 793 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 794 | 795 | is-arguments@^1.1.0: 796 | version "1.1.1" 797 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" 798 | integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== 799 | dependencies: 800 | call-bind "^1.0.2" 801 | has-tostringtag "^1.0.0" 802 | 803 | is-bigint@^1.0.1: 804 | version "1.0.4" 805 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 806 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 807 | dependencies: 808 | has-bigints "^1.0.1" 809 | 810 | is-binary-path@~2.1.0: 811 | version "2.1.0" 812 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 813 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 814 | dependencies: 815 | binary-extensions "^2.0.0" 816 | 817 | is-boolean-object@^1.1.0: 818 | version "1.1.2" 819 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 820 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 821 | dependencies: 822 | call-bind "^1.0.2" 823 | has-tostringtag "^1.0.0" 824 | 825 | is-callable@^1.1.4, is-callable@^1.2.4: 826 | version "1.2.4" 827 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" 828 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== 829 | 830 | is-core-module@^2.8.1: 831 | version "2.8.1" 832 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" 833 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== 834 | dependencies: 835 | has "^1.0.3" 836 | 837 | is-date-object@^1.0.1: 838 | version "1.0.5" 839 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 840 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 841 | dependencies: 842 | has-tostringtag "^1.0.0" 843 | 844 | is-electron@2.2.0: 845 | version "2.2.0" 846 | resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0" 847 | integrity sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q== 848 | 849 | is-extglob@^2.1.1: 850 | version "2.1.1" 851 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 852 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 853 | 854 | is-glob@^4.0.1, is-glob@~4.0.1: 855 | version "4.0.3" 856 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 857 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 858 | dependencies: 859 | is-extglob "^2.1.1" 860 | 861 | is-map@^2.0.2: 862 | version "2.0.2" 863 | resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" 864 | integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== 865 | 866 | is-negative-zero@^2.0.1: 867 | version "2.0.2" 868 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" 869 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 870 | 871 | is-number-object@^1.0.4: 872 | version "1.0.6" 873 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" 874 | integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== 875 | dependencies: 876 | has-tostringtag "^1.0.0" 877 | 878 | is-number@^7.0.0: 879 | version "7.0.0" 880 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 881 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 882 | 883 | is-regex@^1.1.4: 884 | version "1.1.4" 885 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 886 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 887 | dependencies: 888 | call-bind "^1.0.2" 889 | has-tostringtag "^1.0.0" 890 | 891 | is-set@^2.0.2: 892 | version "2.0.2" 893 | resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" 894 | integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== 895 | 896 | is-shared-array-buffer@^1.0.1: 897 | version "1.0.1" 898 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" 899 | integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== 900 | 901 | is-stream@^1.1.0: 902 | version "1.1.0" 903 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 904 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 905 | 906 | is-string@^1.0.5, is-string@^1.0.7: 907 | version "1.0.7" 908 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 909 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 910 | dependencies: 911 | has-tostringtag "^1.0.0" 912 | 913 | is-symbol@^1.0.2, is-symbol@^1.0.3: 914 | version "1.0.4" 915 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 916 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 917 | dependencies: 918 | has-symbols "^1.0.2" 919 | 920 | is-weakref@^1.0.1: 921 | version "1.0.2" 922 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" 923 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 924 | dependencies: 925 | call-bind "^1.0.2" 926 | 927 | isarray@^2.0.5: 928 | version "2.0.5" 929 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" 930 | integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== 931 | 932 | iterate-iterator@^1.0.1: 933 | version "1.0.2" 934 | resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" 935 | integrity sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw== 936 | 937 | iterate-value@^1.0.2: 938 | version "1.0.2" 939 | resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" 940 | integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== 941 | dependencies: 942 | es-get-iterator "^1.0.2" 943 | iterate-iterator "^1.0.1" 944 | 945 | jsonwebtoken@^8.5.1: 946 | version "8.5.1" 947 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" 948 | integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== 949 | dependencies: 950 | jws "^3.2.2" 951 | lodash.includes "^4.3.0" 952 | lodash.isboolean "^3.0.3" 953 | lodash.isinteger "^4.0.4" 954 | lodash.isnumber "^3.0.3" 955 | lodash.isplainobject "^4.0.6" 956 | lodash.isstring "^4.0.1" 957 | lodash.once "^4.0.0" 958 | ms "^2.1.1" 959 | semver "^5.6.0" 960 | 961 | jwa@^1.4.1: 962 | version "1.4.1" 963 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 964 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 965 | dependencies: 966 | buffer-equal-constant-time "1.0.1" 967 | ecdsa-sig-formatter "1.0.11" 968 | safe-buffer "^5.0.1" 969 | 970 | jws@^3.2.2: 971 | version "3.2.2" 972 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 973 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 974 | dependencies: 975 | jwa "^1.4.1" 976 | safe-buffer "^5.0.1" 977 | 978 | lodash.includes@^4.3.0: 979 | version "4.3.0" 980 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 981 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 982 | 983 | lodash.isboolean@^3.0.3: 984 | version "3.0.3" 985 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 986 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 987 | 988 | lodash.isinteger@^4.0.4: 989 | version "4.0.4" 990 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 991 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 992 | 993 | lodash.isnumber@^3.0.3: 994 | version "3.0.3" 995 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 996 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 997 | 998 | lodash.isplainobject@^4.0.6: 999 | version "4.0.6" 1000 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1001 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 1002 | 1003 | lodash.isstring@^4.0.1: 1004 | version "4.0.1" 1005 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1006 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 1007 | 1008 | lodash.once@^4.0.0: 1009 | version "4.1.1" 1010 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1011 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 1012 | 1013 | make-error@^1.1.1: 1014 | version "1.3.6" 1015 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 1016 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 1017 | 1018 | media-typer@0.3.0: 1019 | version "0.3.0" 1020 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1021 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 1022 | 1023 | merge-descriptors@1.0.1: 1024 | version "1.0.1" 1025 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1026 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 1027 | 1028 | methods@~1.1.2: 1029 | version "1.1.2" 1030 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1031 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 1032 | 1033 | mime-db@1.51.0: 1034 | version "1.51.0" 1035 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 1036 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 1037 | 1038 | mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: 1039 | version "2.1.34" 1040 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 1041 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 1042 | dependencies: 1043 | mime-db "1.51.0" 1044 | 1045 | mime@1.6.0: 1046 | version "1.6.0" 1047 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1048 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1049 | 1050 | minimatch@^3.0.4: 1051 | version "3.1.2" 1052 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1053 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1054 | dependencies: 1055 | brace-expansion "^1.1.7" 1056 | 1057 | minimist@^1.2.5: 1058 | version "1.2.5" 1059 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1060 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1061 | 1062 | mkdirp@^1.0.4: 1063 | version "1.0.4" 1064 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 1065 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 1066 | 1067 | ms@2.0.0: 1068 | version "2.0.0" 1069 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1070 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1071 | 1072 | ms@2.1.3, ms@^2.1.1: 1073 | version "2.1.3" 1074 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1075 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1076 | 1077 | negotiator@0.6.3: 1078 | version "0.6.3" 1079 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1080 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1081 | 1082 | node-fetch@^2.6.1: 1083 | version "2.6.7" 1084 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" 1085 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== 1086 | dependencies: 1087 | whatwg-url "^5.0.0" 1088 | 1089 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1090 | version "3.0.0" 1091 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1092 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1093 | 1094 | object-inspect@^1.11.0, object-inspect@^1.9.0: 1095 | version "1.12.0" 1096 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" 1097 | integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== 1098 | 1099 | object-keys@^1.0.12, object-keys@^1.1.1: 1100 | version "1.1.1" 1101 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1102 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1103 | 1104 | object.assign@^4.1.2: 1105 | version "4.1.2" 1106 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1107 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1108 | dependencies: 1109 | call-bind "^1.0.0" 1110 | define-properties "^1.1.3" 1111 | has-symbols "^1.0.1" 1112 | object-keys "^1.1.1" 1113 | 1114 | on-finished@~2.3.0: 1115 | version "2.3.0" 1116 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1117 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1118 | dependencies: 1119 | ee-first "1.1.1" 1120 | 1121 | once@^1.3.0: 1122 | version "1.4.0" 1123 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1124 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1125 | dependencies: 1126 | wrappy "1" 1127 | 1128 | p-cancelable@^1.1.0: 1129 | version "1.1.0" 1130 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 1131 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 1132 | 1133 | p-finally@^1.0.0: 1134 | version "1.0.0" 1135 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1136 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1137 | 1138 | p-queue@^2.4.2: 1139 | version "2.4.2" 1140 | resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-2.4.2.tgz#03609826682b743be9a22dba25051bd46724fc34" 1141 | integrity sha512-n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng== 1142 | 1143 | p-queue@^6.6.1: 1144 | version "6.6.2" 1145 | resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" 1146 | integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== 1147 | dependencies: 1148 | eventemitter3 "^4.0.4" 1149 | p-timeout "^3.2.0" 1150 | 1151 | p-retry@^4.0.0: 1152 | version "4.6.1" 1153 | resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" 1154 | integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== 1155 | dependencies: 1156 | "@types/retry" "^0.12.0" 1157 | retry "^0.13.1" 1158 | 1159 | p-timeout@^3.2.0: 1160 | version "3.2.0" 1161 | resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" 1162 | integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 1163 | dependencies: 1164 | p-finally "^1.0.0" 1165 | 1166 | parseurl@~1.3.3: 1167 | version "1.3.3" 1168 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1169 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1170 | 1171 | path-is-absolute@^1.0.0: 1172 | version "1.0.1" 1173 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1174 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1175 | 1176 | path-parse@^1.0.7: 1177 | version "1.0.7" 1178 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1179 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1180 | 1181 | path-to-regexp@0.1.7: 1182 | version "0.1.7" 1183 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1184 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 1185 | 1186 | picomatch@^2.0.4, picomatch@^2.2.1: 1187 | version "2.3.1" 1188 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1189 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1190 | 1191 | please-upgrade-node@^3.2.0: 1192 | version "3.2.0" 1193 | resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" 1194 | integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== 1195 | dependencies: 1196 | semver-compare "^1.0.0" 1197 | 1198 | prettier@^2.5.1: 1199 | version "2.5.1" 1200 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" 1201 | integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== 1202 | 1203 | promise.allsettled@^1.0.2: 1204 | version "1.0.5" 1205 | resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.5.tgz#2443f3d4b2aa8dfa560f6ac2aa6c4ea999d75f53" 1206 | integrity sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ== 1207 | dependencies: 1208 | array.prototype.map "^1.0.4" 1209 | call-bind "^1.0.2" 1210 | define-properties "^1.1.3" 1211 | es-abstract "^1.19.1" 1212 | get-intrinsic "^1.1.1" 1213 | iterate-value "^1.0.2" 1214 | 1215 | proxy-addr@~2.0.7: 1216 | version "2.0.7" 1217 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1218 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1219 | dependencies: 1220 | forwarded "0.2.0" 1221 | ipaddr.js "1.9.1" 1222 | 1223 | qs@6.9.7: 1224 | version "6.9.7" 1225 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" 1226 | integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== 1227 | 1228 | range-parser@~1.2.1: 1229 | version "1.2.1" 1230 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1231 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1232 | 1233 | raw-body@2.4.3: 1234 | version "2.4.3" 1235 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" 1236 | integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== 1237 | dependencies: 1238 | bytes "3.1.2" 1239 | http-errors "1.8.1" 1240 | iconv-lite "0.4.24" 1241 | unpipe "1.0.0" 1242 | 1243 | raw-body@^2.3.3: 1244 | version "2.5.1" 1245 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 1246 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 1247 | dependencies: 1248 | bytes "3.1.2" 1249 | http-errors "2.0.0" 1250 | iconv-lite "0.4.24" 1251 | unpipe "1.0.0" 1252 | 1253 | readdirp@~3.6.0: 1254 | version "3.6.0" 1255 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1256 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1257 | dependencies: 1258 | picomatch "^2.2.1" 1259 | 1260 | resolve@^1.0.0: 1261 | version "1.22.0" 1262 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" 1263 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== 1264 | dependencies: 1265 | is-core-module "^2.8.1" 1266 | path-parse "^1.0.7" 1267 | supports-preserve-symlinks-flag "^1.0.0" 1268 | 1269 | retry@^0.13.1: 1270 | version "0.13.1" 1271 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" 1272 | integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== 1273 | 1274 | rimraf@^2.6.1: 1275 | version "2.7.1" 1276 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 1277 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 1278 | dependencies: 1279 | glob "^7.1.3" 1280 | 1281 | safe-buffer@5.2.1, safe-buffer@^5.0.1: 1282 | version "5.2.1" 1283 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1284 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1285 | 1286 | "safer-buffer@>= 2.1.2 < 3": 1287 | version "2.1.2" 1288 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1289 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1290 | 1291 | semver-compare@^1.0.0: 1292 | version "1.0.0" 1293 | resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" 1294 | integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= 1295 | 1296 | semver@^5.6.0: 1297 | version "5.7.1" 1298 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1299 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1300 | 1301 | send@0.17.2: 1302 | version "0.17.2" 1303 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" 1304 | integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== 1305 | dependencies: 1306 | debug "2.6.9" 1307 | depd "~1.1.2" 1308 | destroy "~1.0.4" 1309 | encodeurl "~1.0.2" 1310 | escape-html "~1.0.3" 1311 | etag "~1.8.1" 1312 | fresh "0.5.2" 1313 | http-errors "1.8.1" 1314 | mime "1.6.0" 1315 | ms "2.1.3" 1316 | on-finished "~2.3.0" 1317 | range-parser "~1.2.1" 1318 | statuses "~1.5.0" 1319 | 1320 | serve-static@1.14.2: 1321 | version "1.14.2" 1322 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" 1323 | integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== 1324 | dependencies: 1325 | encodeurl "~1.0.2" 1326 | escape-html "~1.0.3" 1327 | parseurl "~1.3.3" 1328 | send "0.17.2" 1329 | 1330 | setprototypeof@1.2.0: 1331 | version "1.2.0" 1332 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1333 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1334 | 1335 | side-channel@^1.0.4: 1336 | version "1.0.4" 1337 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1338 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1339 | dependencies: 1340 | call-bind "^1.0.0" 1341 | get-intrinsic "^1.0.2" 1342 | object-inspect "^1.9.0" 1343 | 1344 | source-map-support@^0.5.12, source-map-support@^0.5.17: 1345 | version "0.5.21" 1346 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1347 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1348 | dependencies: 1349 | buffer-from "^1.0.0" 1350 | source-map "^0.6.0" 1351 | 1352 | source-map@^0.6.0: 1353 | version "0.6.1" 1354 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1355 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1356 | 1357 | statuses@2.0.1: 1358 | version "2.0.1" 1359 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 1360 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 1361 | 1362 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 1363 | version "1.5.0" 1364 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1365 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1366 | 1367 | string.prototype.trimend@^1.0.4: 1368 | version "1.0.4" 1369 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 1370 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 1371 | dependencies: 1372 | call-bind "^1.0.2" 1373 | define-properties "^1.1.3" 1374 | 1375 | string.prototype.trimstart@^1.0.4: 1376 | version "1.0.4" 1377 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 1378 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 1379 | dependencies: 1380 | call-bind "^1.0.2" 1381 | define-properties "^1.1.3" 1382 | 1383 | strip-bom@^3.0.0: 1384 | version "3.0.0" 1385 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1386 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1387 | 1388 | strip-json-comments@^2.0.0: 1389 | version "2.0.1" 1390 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1391 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1392 | 1393 | supports-preserve-symlinks-flag@^1.0.0: 1394 | version "1.0.0" 1395 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1396 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1397 | 1398 | to-regex-range@^5.0.1: 1399 | version "5.0.1" 1400 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1401 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1402 | dependencies: 1403 | is-number "^7.0.0" 1404 | 1405 | toidentifier@1.0.1: 1406 | version "1.0.1" 1407 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 1408 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 1409 | 1410 | tr46@~0.0.3: 1411 | version "0.0.3" 1412 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1413 | integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= 1414 | 1415 | tree-kill@^1.2.2: 1416 | version "1.2.2" 1417 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1418 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1419 | 1420 | ts-node-dev@^1.1.8: 1421 | version "1.1.8" 1422 | resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.1.8.tgz#95520d8ab9d45fffa854d6668e2f8f9286241066" 1423 | integrity sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg== 1424 | dependencies: 1425 | chokidar "^3.5.1" 1426 | dynamic-dedupe "^0.3.0" 1427 | minimist "^1.2.5" 1428 | mkdirp "^1.0.4" 1429 | resolve "^1.0.0" 1430 | rimraf "^2.6.1" 1431 | source-map-support "^0.5.12" 1432 | tree-kill "^1.2.2" 1433 | ts-node "^9.0.0" 1434 | tsconfig "^7.0.0" 1435 | 1436 | ts-node@^10.6.0: 1437 | version "10.6.0" 1438 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.6.0.tgz#c3f4195d5173ce3affdc8f2fd2e9a7ac8de5376a" 1439 | integrity sha512-CJen6+dfOXolxudBQXnVjRVvYTmTWbyz7cn+xq2XTsvnaXbHqr4gXSCNbS2Jj8yTZMuGwUoBESLaOkLascVVvg== 1440 | dependencies: 1441 | "@cspotcode/source-map-support" "0.7.0" 1442 | "@tsconfig/node10" "^1.0.7" 1443 | "@tsconfig/node12" "^1.0.7" 1444 | "@tsconfig/node14" "^1.0.0" 1445 | "@tsconfig/node16" "^1.0.2" 1446 | acorn "^8.4.1" 1447 | acorn-walk "^8.1.1" 1448 | arg "^4.1.0" 1449 | create-require "^1.1.0" 1450 | diff "^4.0.1" 1451 | make-error "^1.1.1" 1452 | v8-compile-cache-lib "^3.0.0" 1453 | yn "3.1.1" 1454 | 1455 | ts-node@^9.0.0: 1456 | version "9.1.1" 1457 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" 1458 | integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== 1459 | dependencies: 1460 | arg "^4.1.0" 1461 | create-require "^1.1.0" 1462 | diff "^4.0.1" 1463 | make-error "^1.1.1" 1464 | source-map-support "^0.5.17" 1465 | yn "3.1.1" 1466 | 1467 | tsconfig@^7.0.0: 1468 | version "7.0.0" 1469 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" 1470 | integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== 1471 | dependencies: 1472 | "@types/strip-bom" "^3.0.0" 1473 | "@types/strip-json-comments" "0.0.30" 1474 | strip-bom "^3.0.0" 1475 | strip-json-comments "^2.0.0" 1476 | 1477 | tsscmp@^1.0.6: 1478 | version "1.0.6" 1479 | resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" 1480 | integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== 1481 | 1482 | type-is@~1.6.18: 1483 | version "1.6.18" 1484 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1485 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1486 | dependencies: 1487 | media-typer "0.3.0" 1488 | mime-types "~2.1.24" 1489 | 1490 | typescript@^4.6.2: 1491 | version "4.6.2" 1492 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" 1493 | integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== 1494 | 1495 | unbox-primitive@^1.0.1: 1496 | version "1.0.1" 1497 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 1498 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 1499 | dependencies: 1500 | function-bind "^1.1.1" 1501 | has-bigints "^1.0.1" 1502 | has-symbols "^1.0.2" 1503 | which-boxed-primitive "^1.0.2" 1504 | 1505 | unpipe@1.0.0, unpipe@~1.0.0: 1506 | version "1.0.0" 1507 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1508 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1509 | 1510 | utils-merge@1.0.1: 1511 | version "1.0.1" 1512 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1513 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 1514 | 1515 | v8-compile-cache-lib@^3.0.0: 1516 | version "3.0.0" 1517 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8" 1518 | integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== 1519 | 1520 | vary@~1.1.2: 1521 | version "1.1.2" 1522 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1523 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1524 | 1525 | webidl-conversions@^3.0.0: 1526 | version "3.0.1" 1527 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1528 | integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= 1529 | 1530 | whatwg-url@^5.0.0: 1531 | version "5.0.0" 1532 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1533 | integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= 1534 | dependencies: 1535 | tr46 "~0.0.3" 1536 | webidl-conversions "^3.0.0" 1537 | 1538 | which-boxed-primitive@^1.0.2: 1539 | version "1.0.2" 1540 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 1541 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 1542 | dependencies: 1543 | is-bigint "^1.0.1" 1544 | is-boolean-object "^1.1.0" 1545 | is-number-object "^1.0.4" 1546 | is-string "^1.0.5" 1547 | is-symbol "^1.0.3" 1548 | 1549 | wrappy@1: 1550 | version "1.0.2" 1551 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1552 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1553 | 1554 | ws@^7.5.3: 1555 | version "7.5.7" 1556 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" 1557 | integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== 1558 | 1559 | xtend@^4.0.0: 1560 | version "4.0.2" 1561 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1562 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1563 | 1564 | yn@3.1.1: 1565 | version "3.1.1" 1566 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1567 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1568 | --------------------------------------------------------------------------------