├── .eslintrc.js ├── .gitignore ├── .npmrc ├── .prettierrc ├── README.md ├── example ├── package.json ├── src │ └── index.ts └── tsconfig.json ├── package.json ├── packages ├── @notionx │ └── client │ │ ├── package.json │ │ ├── src │ │ ├── classes │ │ │ ├── contants.ts │ │ │ ├── database-property.ts │ │ │ ├── database.ts │ │ │ ├── page.ts │ │ │ └── properties │ │ │ │ ├── boolean.ts │ │ │ │ ├── date.ts │ │ │ │ ├── file.ts │ │ │ │ ├── multi-select.ts │ │ │ │ ├── number.ts │ │ │ │ ├── people.ts │ │ │ │ ├── relation.ts │ │ │ │ ├── rich-text.ts │ │ │ │ ├── select.ts │ │ │ │ └── timestamp.ts │ │ ├── client.ts │ │ ├── helpers │ │ │ ├── normalize-database-schema.ts │ │ │ ├── normalize-filters.ts │ │ │ ├── normalize-sorts.ts │ │ │ └── serialize.ts │ │ ├── index.ts │ │ └── types │ │ │ ├── database.ts │ │ │ ├── filters.ts │ │ │ ├── page.ts │ │ │ ├── properties.ts │ │ │ └── sort.ts │ │ └── tsconfig.json ├── eslint │ ├── index.js │ └── package.json └── tsconfig │ ├── base.json │ ├── nextjs.json │ ├── package.json │ └── react-library.json ├── turbo.json └── yarn.lock /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ["notionx"], 4 | }; 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | node_modules 5 | .pnp 6 | .pnp.js 7 | 8 | # testing 9 | coverage 10 | 11 | # next.js 12 | .next/ 13 | out/ 14 | build 15 | 16 | # misc 17 | .DS_Store 18 | *.pem 19 | 20 | # debug 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | # local env files 26 | .env 27 | .env.local 28 | .env.development.local 29 | .env.test.local 30 | .env.production.local 31 | 32 | # turbo 33 | .turbo 34 | 35 | # vercel 36 | .vercel 37 | 38 | dist -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | auto-install-peers = true 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "es5", 8 | "bracketSpacing": true, 9 | "jsxSingleQuote": false, 10 | "arrowParens": "always", 11 | "proseWrap": "never", 12 | "htmlWhitespaceSensitivity": "strict", 13 | "endOfLine": "lf" 14 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | NotionX 3 |

4 | 5 |
6 |
7 | 8 | ### A type-safe and powerful [Notion](https://notion.so) client. 9 | 10 |
11 |
12 | 13 |
14 | 15 | [![PRs Welcome](https://img.shields.io/badge/PRs-Are%20welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com) [![Commitizen friendly](https://img.shields.io/badge/Commitizen-Friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/) [![License](https://img.shields.io/github/license/syneki/notion-cms?label=License&style=flat-square)](LICENCE) 16 | 17 | [![@notionx/client](https://img.shields.io/npm/v/@notionx/client?label=%40syneki%2Fnotion-cms&style=flat-square)](https://www.npmjs.com/package/@notionx/client) [![@syneki/notion-renderer](https://img.shields.io/npm/v/@notionx/client?label=%40syneki%2Fnotion-renderer&style=flat-square)](https://www.npmjs.com/package/@syneki/notion-renderer) 18 | 19 | [![Powered by Syneki](https://syneki.s3.eu-west-3.amazonaws.com/logo/badge-flat.svg)](https://syneki.com) [![Managed with](https://img.shields.io/badge/Managed%20with-NX-blue.svg?style=flat-square&logo=nx)](https://nx.dev/) 20 | 21 | [🚀 Get started](#🚀-getting-started) • [🔧 Configure](#🔧-configure) • [🔍 Query](#🔍-query) • [🏗 Extend](#🏗-extend) 22 | 23 | [Contribute](#contributing) • [License](#license) 24 | 25 |
26 | 27 | # ⚠ Pre-release 28 | 29 | This project is currently in pre-release, you can use it but some features are lacking and few things will have to change in a near future. 30 | 31 | Do not hesitate to open an issue to provide your feedback, report bugs and to propose new features. 32 | 33 | # 🚀 Getting started 34 | 35 | ## Install libraries 36 | 37 | ```shell 38 | $ npm install @notionx/client @notionx/renderer 39 | $ yarn add @notionx/client @notionx/renderer 40 | ``` 41 | 42 | > ⚠ We highly recommend to use a **Static Website Generator** to use `@notionx/client`. The Notion API is extremely slow, avoid querying it on each visit. 43 | 44 | ## Create a database 45 | 46 | ![My integrations](docs/table.png) 47 | 48 | ## Query your database 49 | 50 | ```typescript 51 | import { Client, DatabaseSchema } from '@notionx/client'; 52 | 53 | const client = new Client({ 54 | auth: process.env.NOTION_TOKEN, 55 | }); 56 | 57 | const schema: DatabaseSchema = { 58 | slug: { 59 | name: 'Slug', 60 | type: 'right_text', 61 | }, 62 | status: { 63 | name: 'Status', 64 | type: 'select', 65 | }, 66 | }; 67 | 68 | // Query a database 69 | const pages = await client.queryDatabase( 70 | '', 71 | schema 72 | { 73 | filter: [ 74 | { 75 | status: { 76 | equals: 'Published', 77 | }, 78 | }, 79 | ], 80 | sorts: { 81 | slug: 'ascending', 82 | }, 83 | } 84 | ); 85 | 86 | const page = await client.page(schema, ' :warning: Make sure that you are giving the correct permissions. If the token is directly accessible from your Frontend it can be a real problem! 101 | 102 | ![My integrations](docs/integration_granular_permissions.gif) 103 | 104 | ## Add the integration to your databases 105 | 106 | On each databases you want to query click on the `•••` in the top right corner. 107 | 108 | Click on **Add connection** and select your Integration. Your token should now have access to your database. 109 | 110 | # 🔧 Configure 111 | 112 | ## `NotionCMS` 113 | 114 | `NotionCMS` is used to interact with a Notion Account. 115 | 116 | ```typescript 117 | import { Client } from '@notionx/client'; 118 | 119 | const cms = new Client({ 120 | auth: '', // Your Notion Internal Integration Token 121 | renderer: notionRenderer, // A NotionRenderer instance 122 | parser: notionParser, // A NotionParser instance 123 | }); 124 | ``` 125 | 126 | ## `NotionDatabase` 127 | 128 | The `NotionDatabase` is used to interact with a specific Notion database. 129 | 130 | ```typescript 131 | import { NotionDatabse } from '@notionx/client'; 132 | 133 | const database = new NotionDatabase({ 134 | cms: notionCMS, // Your NotionCMS instance 135 | databaseId: '', // The ID of the Notion Database 136 | mapping: { 137 | title: { 138 | // The property key of the final object 139 | name: 'Title', // The name of the page Property 140 | id: 'title', // The id of the page Property 141 | }, 142 | shortDescription: { 143 | name: 'Short description', 144 | }, 145 | }, 146 | }); 147 | ``` 148 | 149 | The mapping is optionnal, if you do not specify it, the keys will be taken from the properties name. 150 | 151 | Read more on [how to query your pages](#query). 152 | 153 | > ℹ You can find the Database ID from the URL on the page. 154 | 155 | ## `NotionRenderer` 156 | 157 | The `NotionRenderer` instance is used to transform properties and content into HTML. It accepts custom Blocks. 158 | 159 | Read more on [how to extend](#extend). 160 | 161 | ```typescript 162 | import { NotionRenderer } from '@syneki/notion-renderer'; 163 | 164 | const renderer = new NotionRenderer(ParagraphBlock, TaskBlock); 165 | ``` 166 | 167 | # 🔍 Query 168 | 169 | ## List pages of a database 170 | 171 | ```typescript 172 | import { NotionDatabase } from '@notionx/client'; 173 | 174 | const database = new NotionDatabse({ ... }) 175 | 176 | const posts = await database.list() 177 | 178 | const posts = await database.list({ 179 | // Filtering 180 | filter: { 181 | property: 'Status', // The property name 182 | type: 'status', // The property type 183 | status: { 184 | equals: 'Published' // What status you want to query 185 | } 186 | }, 187 | 188 | // Pagination 189 | pageSize: 2, // The number of pages to query 190 | cursor: '', // At what page the list starts 191 | 192 | // Sorting [WIP] 193 | }) 194 | ``` 195 | 196 | ## Query a single page by ID 197 | 198 | ```typescript 199 | import { NotionDatabase } from '@notionx/client'; 200 | 201 | const database = new NotionDatabse({ ... }) 202 | 203 | const post = await database.get(''); 204 | ``` 205 | 206 | ## Query a single page by property 207 | 208 | ```typescript 209 | import { NotionDatabase } from '@notionx/client'; 210 | 211 | const database = new NotionDatabse({ ... }) 212 | 213 | const post = await database.findFirst({ 214 | property: 'Slug', 215 | rich_text: { 216 | equals: 'my-super-post' 217 | } 218 | }) 219 | ``` 220 | 221 | ## Get the content of a page 222 | 223 | When querying pages, you will only get the properties. You must query the content with the `getContent` method. 224 | 225 | The content is automatically rendered into HTML. 226 | 227 | ```typescript 228 | import { NotionDatabase } from '@notionx/client'; 229 | 230 | const database = new NotionDatabse({ ... }) 231 | 232 | const post = await database.findFirst({ 233 | property: 'Slug', 234 | rich_text: { 235 | equals: 'my-super-post' 236 | } 237 | }) 238 | 239 | const content = await database.getContent(post.id); 240 | ``` 241 | 242 | # 🏗 Extend 243 | 244 | ## Parsers 245 | 246 | Parsers transform page properties sent by the Notion API. 247 | 248 | For example, a `date` property in Notion results in a `string` but we parse it to transform it into a `Date` and make it directly accessible into the final object. 249 | 250 | In the following examples we replace the first part of each email with fake data. 251 | 252 | ```typescript 253 | import { faker } from '@faker-js/faker'; 254 | import { NotionParser, NotionCMS, PropertyParser } from '@notionx/client'; 255 | 256 | const fakeEmailParser: PropertyParser = (data) => { 257 | const domain = data.email.split('@').at(-1); 258 | return `${faker.internet.userName()}@${domain}`; 259 | }; 260 | 261 | // Add it through the constructor 262 | const parser = new NotionParser({ 263 | propertyParsers: { 264 | email: fakeEmailParser, 265 | }, 266 | }); 267 | 268 | // Or with the method addParser 269 | parser.addParser('email', fakeEmailParser); 270 | 271 | // Use it in NotionCMS 272 | const cms = new NotionCMS({ parser }); 273 | ``` 274 | 275 | ## Renderers 276 | 277 | Notion does not transform the rich content into HTML. It returns a JSON object with the configuration of each block. 278 | 279 | You can add custom renderer to override the current Renderers or to handle more blocks. 280 | 281 | ```typescript 282 | import { createBlockRenderer, NotionRenderer } from '@syneki/notion-renderer'; 283 | 284 | const customParagraphRenderer = createBlockRenderer( 285 | 'paragraph', 286 | (data, renderer) => { 287 | return `

${renderer.render( 288 | ...data.paragraph.rich_text 289 | )}

`; 290 | } 291 | ); 292 | 293 | // Add it through the constructor 294 | const renderer = new NotionRenderer(customParagraphRenderer); 295 | // Or with the method addBlockRenderer 296 | renderer.addBlockRenderer(customParagraphRenderer); 297 | 298 | // Use it in NotionCMS 299 | const cms = new NotionCMS({ renderer }); 300 | ``` 301 | 302 | As you can see we can render Blocks into blocks. In this case a Code Block contains Rich text, we call the `renderer.render` method to render it with the `RichTextRenderer`. 303 | 304 | # Contributing 305 | 306 | # Licence 307 | 308 | Copyright © 2022 Syneki 309 | 310 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 311 | 312 | ``` 313 | http://www.apache.org/licenses/LICENSE-2.0 314 | ``` 315 | 316 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 317 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "start": "node dist/index.js", 6 | "dev": "yarn build --watch", 7 | "build": "tsc --build", 8 | "lint": "eslint src/**/*.ts", 9 | "lint:fix": "yarn lint --fix" 10 | }, 11 | "devDependencies": { 12 | "@types/lodash": "^4.14.194", 13 | "eslint": "^8.39.0", 14 | "tsconfig": "*", 15 | "typescript": "^5.0.4" 16 | }, 17 | "dependencies": { 18 | "@notionx/client": "*" 19 | } 20 | } -------------------------------------------------------------------------------- /example/src/index.ts: -------------------------------------------------------------------------------- 1 | import { Client } from '@notionx/client'; 2 | 3 | const client = new Client({ 4 | auth: process.env.NOTION_TOKEN!, 5 | }); 6 | 7 | async function main() { 8 | const pages = await client.queryDatabase( 9 | '25bc244c88b3467ba01a35b4b18b4426', 10 | { 11 | Description: 'rich_text', 12 | blockType: { 13 | name: 'Block type', 14 | type: 'rich_text', 15 | }, 16 | requireClient: { 17 | name: 'Require client', 18 | type: 'checkbox', 19 | }, 20 | name: { 21 | name: 'Name', 22 | type: 'title', 23 | }, 24 | }, 25 | { 26 | sorts: { 27 | name: 'descending', 28 | }, 29 | } 30 | ); 31 | 32 | for (const page of pages) { 33 | console.log(page.name); 34 | } 35 | } 36 | 37 | main(); 38 | -------------------------------------------------------------------------------- /example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "tsconfig/base.json", 3 | "compilerOptions": { 4 | "composite": true, 5 | "module": "CommonJS", 6 | "rootDir": "./src", 7 | "outDir": "./dist", 8 | "incremental": true, 9 | "tsBuildInfoFile": "./dist/.tsbuildinfo.json", 10 | "strictPropertyInitialization": false, 11 | "experimentalDecorators": true, 12 | "emitDecoratorMetadata": true 13 | }, 14 | "references": [ 15 | { 16 | "path": "../packages/@notionx/client" 17 | } 18 | ], 19 | "include": ["./src"] 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "turbo run build", 5 | "dev": "turbo run dev", 6 | "lint": "turbo run lint", 7 | "lint:fix": "turbo run lint:fix", 8 | "test": "turbo run test", 9 | "format": "prettier --write \"**/*.{ts,tsx,md}\"" 10 | }, 11 | "devDependencies": { 12 | "eslint": "^7.32.0", 13 | "eslint-config-notionx": "*", 14 | "prettier": "^2.5.1", 15 | "turbo": "^1.9.3" 16 | }, 17 | "name": "notionx", 18 | "packageManager": "yarn@3.5.1", 19 | "workspaces": [ 20 | "packages/**", 21 | "example" 22 | ] 23 | } -------------------------------------------------------------------------------- /packages/@notionx/client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@notionx/client", 3 | "version": "0.0.1", 4 | "main": "./dist/index.js", 5 | "types": "./dist/index.d.ts", 6 | "scripts": { 7 | "dev": "yarn build --watch", 8 | "build": "tsc --build", 9 | "lint": "eslint src/**/*.ts", 10 | "lint:fix": "yarn lint --fix" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/kerwanp/notionx", 15 | "directory": "packages/@notionx/client" 16 | }, 17 | "publishConfig": { 18 | "access": "public" 19 | }, 20 | "devDependencies": { 21 | "@types/lodash": "^4.14.194", 22 | "eslint": "^8.39.0", 23 | "tsconfig": "*", 24 | "type-fest": "^3.10.0", 25 | "typescript": "^5.0.4" 26 | }, 27 | "dependencies": { 28 | "class-transformer": "^0.5.1", 29 | "lodash": "^4.17.21", 30 | "p-queue": "^6.6.2", 31 | "p-retry": "^4.6.2", 32 | "reflect-metadata": "^0.1.13", 33 | "sanitize-html": "^2.10.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/contants.ts: -------------------------------------------------------------------------------- 1 | import { BooleanFilter } from './properties/boolean'; 2 | import { DateFilter } from './properties/date'; 3 | import { FileFilter } from './properties/file'; 4 | import { MultiSelectFilter } from './properties/multi-select'; 5 | import { NumberFilter } from './properties/number'; 6 | import { PeopleFilter } from './properties/people'; 7 | import { RichTextFilter } from './properties/rich-text'; 8 | import { SelectFilter } from './properties/select'; 9 | export const FILTER_CLASSES_MAPPING = { 10 | checkbox: BooleanFilter, 11 | rich_text: RichTextFilter, 12 | email: RichTextFilter, 13 | number: NumberFilter, 14 | created_by: PeopleFilter, 15 | created_time: DateFilter, 16 | date: DateFilter, 17 | files: FileFilter, 18 | formula: RichTextFilter, // TODO 19 | last_edited_by: PeopleFilter, 20 | last_edited_time: DateFilter, 21 | multi_select: MultiSelectFilter, 22 | people: PeopleFilter, 23 | phone_number: RichTextFilter, 24 | relation: RichTextFilter, 25 | rollup: RichTextFilter, // TODO 26 | select: SelectFilter, 27 | status: SelectFilter, 28 | title: RichTextFilter, 29 | }; 30 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/database-property.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | import { PropertyType } from '../types/properties'; 4 | 5 | export class DatabaseProperty { 6 | /** 7 | * An identifier for the property, usually a short string of random letters and symbols. 8 | * 9 | * @example "fy:{" 10 | */ 11 | @Expose() 12 | id: string; 13 | 14 | /** 15 | * The name of the property as it appears in Notion. 16 | * 17 | * @example "Status" 18 | */ 19 | @Expose() 20 | name: string; 21 | 22 | /** 23 | * The type that controls the behavior of the property. 24 | * 25 | * @example "rich_text" 26 | */ 27 | @Expose() 28 | type: PropertyType; 29 | } 30 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/database.ts: -------------------------------------------------------------------------------- 1 | import { Expose, Type } from 'class-transformer'; 2 | 3 | export class Database { 4 | /** 5 | * Unique identifier for the database. 6 | * 7 | * @example "2f26ee68-df30-4251-aad4-8ddc420cba3d" 8 | */ 9 | @Expose() 10 | id: string; 11 | 12 | /** 13 | * The URL of the Notion database. 14 | */ 15 | @Expose() 16 | url: string; 17 | 18 | /** 19 | * Information about the database's parent 20 | */ 21 | @Expose() 22 | parent: any; // TODO 23 | 24 | /** 25 | * Name of the database as it appears in Notion. 26 | */ 27 | @Expose() 28 | title: any; // TODO 29 | 30 | /** 31 | * Description of the database as it appears in Notion. 32 | */ 33 | @Expose() 34 | description: any; // TODO 35 | 36 | /** 37 | * Page icon. 38 | */ 39 | @Expose() 40 | icon: any; // TODO 41 | 42 | /** 43 | * Page cover image. 44 | */ 45 | @Expose() 46 | cover: any; // TODO 47 | 48 | /** 49 | * The archived status of the database. 50 | * 51 | * @example false 52 | */ 53 | @Expose() 54 | archived: boolean; 55 | 56 | /** 57 | * Has the value `true` if the database appears in the page as an inline block. 58 | * Otherwise has the value `false` if the database appears as a child page. 59 | * 60 | * @example false 61 | */ 62 | @Expose({ name: 'is_inline' }) 63 | isInline: boolean; 64 | 65 | /** 66 | * User who last edited the database. 67 | */ 68 | @Expose({ name: 'last_edited_by' }) 69 | lastEditedBy: any; 70 | 71 | /** 72 | * Date and time when this database was updated. 73 | * 74 | * @example "2020-03-17T21:49:37.913Z" 75 | */ 76 | @Type(() => Date) 77 | @Expose({ name: 'last_edited_time' }) 78 | lastEditedTime: Date; 79 | 80 | /** 81 | * User who created the database. 82 | */ 83 | @Expose({ name: 'created_by' }) 84 | createdBy: any; 85 | 86 | /** 87 | * Date and time when this database was created. 88 | * 89 | * @example "2020-03-17T19:10:04.968Z" 90 | */ 91 | @Type(() => Date) 92 | @Expose({ name: 'created_time' }) 93 | createdTime: Date; 94 | } 95 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/page.ts: -------------------------------------------------------------------------------- 1 | import { Expose, Type } from 'class-transformer'; 2 | 3 | import { Client } from '../client'; 4 | 5 | export class Page { 6 | client: Client; 7 | 8 | /** 9 | * Unique identifier of the page. 10 | * @example "45ee8d13-687b-47ce-a5ca-6e2e45548c4b" 11 | */ 12 | @Expose() 13 | id: string; 14 | 15 | /** 16 | * The URL of the Notion page. 17 | * 18 | * @example "https://www.notion.so/Avocado-d093f1d200464ce78b36e58a3f0d8043" 19 | */ 20 | @Expose() 21 | url: string; 22 | 23 | /** 24 | * Information about the page's parent. 25 | * 26 | * @example TODO 27 | */ 28 | @Expose() 29 | parent: any; // TODO 30 | 31 | /** 32 | * Page icon. 33 | * 34 | * @example TODO 35 | */ 36 | @Expose() 37 | icon: any; // TODO 38 | 39 | /** 40 | * Page cover image. 41 | * 42 | * @example TODO 43 | */ 44 | @Expose() 45 | cover: any; // TODO 46 | 47 | /** 48 | * The archived status of the page. 49 | * 50 | * @example false 51 | */ 52 | @Expose() 53 | archived: boolean; 54 | 55 | /** 56 | * User who last edited the page. 57 | */ 58 | @Expose({ name: 'last_edited_by' }) 59 | lastEditedBy: any; // TODO 60 | 61 | /** 62 | * Date and time when this page was updated. 63 | * 64 | * @example 2023-03-08T18:25:00.000Z 65 | */ 66 | @Type(() => Date) 67 | @Expose({ name: 'last_edited_time' }) 68 | lastEditedTime: Date; 69 | 70 | /** 71 | * User who created the page. 72 | */ 73 | @Expose({ name: 'created_by' }) 74 | createdBy: any; // TODO 75 | 76 | /** 77 | * Date and time when this page was created. 78 | * 79 | * @example 2023-03-08T18:25:00.000Z 80 | */ 81 | @Type(() => Date) 82 | @Expose({ name: 'created_time' }) 83 | createdTime: Date; 84 | 85 | content() { 86 | return this.client.request(`/blocks/${this.id}/children`); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/boolean.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | export class BooleanFilter { 4 | /** 5 | * Returns or excludes all database entries with an exact value match. 6 | * 7 | * @example false 8 | */ 9 | @Expose() 10 | equals: boolean; 11 | 12 | /** 13 | * Returns or excludes all database entries with a difference in values. 14 | * 15 | * @example true 16 | */ 17 | @Expose({ name: 'does_not_equal' }) 18 | doesNotEqual: boolean; 19 | } 20 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/date.ts: -------------------------------------------------------------------------------- 1 | import { Expose, Transform, Type } from 'class-transformer'; 2 | 3 | export class DateFilter { 4 | /** 5 | * Returns database entries where the date property value is after the provided date. 6 | * 7 | * @example "2021-05-10" "2021-05-10T12:00:00" "2021-10-15T12:00:00-07:00" 8 | */ 9 | @Expose() 10 | @Type(() => Date) 11 | after: string; 12 | 13 | /** 14 | * Returns database entries where the date property value is before the provided date. 15 | * 16 | * @example "2021-05-10" "2021-05-10T12:00:00" "2021-10-15T12:00:00-07:00" 17 | */ 18 | @Expose() 19 | @Type(() => Date) 20 | before: string; 21 | 22 | /** 23 | * Returns database entries where the date property value is the provided date. 24 | * 25 | * @example "2021-05-10" "2021-05-10T12:00:00" "2021-10-15T12:00:00-07:00" 26 | */ 27 | @Expose() 28 | equals: string; 29 | 30 | /** 31 | * Returns database entries where the date property value contains no data. 32 | */ 33 | @Expose({ name: 'is_empty' }) 34 | isEmpty: true; 35 | 36 | /** 37 | * Returns database entries where the date property value is not empty. 38 | */ 39 | @Expose({ name: 'is_not_empty' }) 40 | isNotEmpty: true; 41 | 42 | /** 43 | * A filter that limits the results to database entries where the date property value is within the next month. 44 | */ 45 | @Expose({ name: 'next_month' }) 46 | @Transform(() => ({}), { toPlainOnly: true }) 47 | nextMonth: true; 48 | 49 | /** 50 | * A filter that limits the results to database entries where the date property value is within the next week. 51 | */ 52 | @Expose({ name: 'next_week' }) 53 | @Transform(() => ({}), { toPlainOnly: true }) 54 | nextWeek: true; 55 | 56 | /** 57 | * A filter that limits the results to database entries where the date property value is within the next year. 58 | */ 59 | @Expose({ name: 'next_year' }) 60 | @Transform(() => ({}), { toPlainOnly: true }) 61 | nextYear: true; 62 | 63 | /** 64 | * A filter that limits the results to database entries where the date property value is within the next week. 65 | * 66 | * @example "2021-05-10" "2021-05-10T12:00:00" "2021-10-15T12:00:00-07:00" 67 | */ 68 | @Expose({ name: 'on_or_after' }) 69 | onOrAfter: string; 70 | 71 | /** 72 | * A filter that limits the results to database entries where the date property value is within the past month. 73 | */ 74 | @Expose({ name: 'past_month' }) 75 | @Transform(() => ({}), { toPlainOnly: true }) 76 | pastMonth: true; 77 | 78 | /** 79 | * A filter that limits the results to database entries where the date property value is within the past week. 80 | */ 81 | @Expose({ name: 'past_week' }) 82 | @Transform(() => ({}), { toPlainOnly: true }) 83 | pastWeek: true; 84 | 85 | /** 86 | * A filter that limits the results to database entries where the date property value is within the past year. 87 | */ 88 | @Expose({ name: 'past_year' }) 89 | @Transform(() => ({}), { toPlainOnly: true }) 90 | pastYear: true; 91 | 92 | /** 93 | * A filter that limits the results to database entries where the date property value is this week. 94 | */ 95 | @Expose({ name: 'this_week' }) 96 | @Transform(() => ({}), { toPlainOnly: true }) 97 | thisWeek: true; 98 | } 99 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/file.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | export class FileFilter { 4 | /** 5 | * Returns all database entries with an empty files property value. 6 | */ 7 | @Expose({ name: 'is_empty' }) 8 | isEmpty: true; 9 | 10 | /** 11 | * Returns all entries with a populated files property value. 12 | */ 13 | @Expose({ name: 'is_not_empty' }) 14 | isNotEmpty: true; 15 | } 16 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/multi-select.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | // TODO: Use unions 4 | export class MultiSelectFilter { 5 | /** 6 | * Returns database entries where the multi-select value contains the provided string. 7 | * 8 | * @example "Marketing" 9 | */ 10 | @Expose() 11 | contains: string; 12 | 13 | /** 14 | * Returns database entries where the multi-select value does not contain the provided string. 15 | * 16 | * @example "Engineering" 17 | */ 18 | @Expose({ name: 'does_not_contain' }) 19 | doesNotContain: string; 20 | 21 | /** 22 | * Returns database entries where the multi-select value does not contain any data. 23 | */ 24 | @Expose({ name: 'is_empty' }) 25 | isEmpty: true; 26 | 27 | /** 28 | * Returns database entries where the multi-select value does contains data. 29 | */ 30 | @Expose({ name: 'is_not_empty' }) 31 | isNotEmpty: true; 32 | } 33 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/number.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | export class NumberFilter { 4 | /** 5 | * Returns database entries where the number property value differs from the provided number. 6 | */ 7 | @Expose({ name: 'does_not_equal' }) 8 | doesNotEqual: number; 9 | 10 | /** 11 | * Returns database entries where the number property value is the same as the provided number. 12 | */ 13 | @Expose() 14 | equals: number; 15 | 16 | /** 17 | * Returns database entries where the number property value exceeds the provided number. 18 | */ 19 | @Expose({ name: 'greater_than' }) 20 | greaterThan: number; 21 | 22 | /** 23 | * Returns database entries where the number property value is equal to or exceeds the provided number. 24 | */ 25 | @Expose({ name: 'greater_than_or_equal_to' }) 26 | greaterThanOrEqualTo: number; 27 | 28 | /** 29 | * Returns database entries where the number property value does not contain any data. 30 | */ 31 | @Expose({ name: 'is_empty' }) 32 | isEmpty: true; 33 | 34 | /** 35 | * Returns database entries where the number property value contains data. 36 | */ 37 | @Expose({ name: 'is_not_empty' }) 38 | isNotEmpty: true; 39 | 40 | /** 41 | * Returns database entries where the page property value is less than the provided number. 42 | */ 43 | @Expose({ name: 'less_than' }) 44 | lessThan: number; 45 | 46 | /** 47 | * Returns database entries where the page property value is equal to or is less than the provided number. 48 | */ 49 | @Expose({ name: 'less_than_or_equal_to' }) 50 | lessThanOrEqualTo: number; 51 | } 52 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/people.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | export class PeopleFilter { 4 | /** 5 | * Returns database entries where the people property value contains the provided string. 6 | * 7 | * @example "6c574cee-ca68-41c8-86e0-1b9e992689fb" 8 | */ 9 | @Expose() 10 | contains: string; 11 | 12 | /** 13 | * Returns database entries where the people property value does not contain the provided string. 14 | * 15 | * @example "6c574cee-ca68-41c8-86e0-1b9e992689fb" 16 | */ 17 | @Expose() 18 | doesNotContain: string; 19 | 20 | /** 21 | * Returns database entries where the people property value does not contain any data. 22 | */ 23 | @Expose({ name: 'is_empty' }) 24 | isEmpty: true; 25 | 26 | /** 27 | * Returns database entries where the people property value is not empty. 28 | */ 29 | @Expose({ name: 'is_not_empty' }) 30 | isNotEmpty: true; 31 | } 32 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/relation.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | // TODO: Relation system 4 | export class RelationFilter { 5 | /** 6 | * Returns database entries where the relation property value contains the provided string. 7 | * 8 | * @example "6c574cee-ca68-41c8-86e0-1b9e992689fb" 9 | */ 10 | @Expose() 11 | contains: string; 12 | 13 | /** 14 | * Returns entries where the relation property value does not contain the provided string. 15 | * 16 | * @example "6c574cee-ca68-41c8-86e0-1b9e992689fb" 17 | */ 18 | @Expose({ name: 'does_not_contain' }) 19 | doesNotContain: string; 20 | 21 | /** 22 | * Returns database entries where the relation property value does not contain any data. 23 | */ 24 | @Expose({ name: 'is_empty' }) 25 | isEmpty: true; 26 | 27 | /** 28 | * Returns database entries where the property value is not empty. 29 | */ 30 | @Expose({ name: 'is_not_empty' }) 31 | isNotEmpty: true; 32 | } 33 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/rich-text.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | export class RichTextFilter { 4 | /** 5 | * Returns database entries with a text property value that includes the provided string. 6 | * 7 | * @example "Move to Q2" 8 | */ 9 | @Expose() 10 | contains: string; 11 | 12 | /** 13 | * Returns database entries with a text property value that does not include the provided string. 14 | * 15 | * @example "Move to Q2" 16 | */ 17 | @Expose({ name: 'does_not_contain ' }) 18 | doesNotContain: string; 19 | 20 | /** 21 | * Returns database entries with a text property value that does not match the provided string. 22 | * 23 | * @example "Move to Q2" 24 | */ 25 | @Expose({ name: 'does_not_equal' }) 26 | doesNotEqual: string; 27 | 28 | /** 29 | * Returns database entries with a text property value that ends with the provided string. 30 | * 31 | * @example "Move to Q2" 32 | */ 33 | @Expose({ name: 'ends_with' }) 34 | endsWith: string; 35 | 36 | /** 37 | * Returns database entries with a text property value that matches the provided string. 38 | * 39 | * @example "Move to Q2" 40 | */ 41 | @Expose() 42 | equals: string; 43 | 44 | /** 45 | * Returns database entries with a text property value that is empty. 46 | */ 47 | @Expose({ name: 'is_empty' }) 48 | isEmpty: true; 49 | 50 | /** 51 | * Returns database entries with a text property value that contains data. 52 | */ 53 | @Expose({ name: 'is_not_empty' }) 54 | isNotEmpty: true; 55 | 56 | /** 57 | * Returns database entries with a text property value that starts with the provided string. 58 | * 59 | * @example "Move to Q2" 60 | */ 61 | @Expose({ name: 'starts_with' }) 62 | startsWith: string; 63 | } 64 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/select.ts: -------------------------------------------------------------------------------- 1 | import { Expose } from 'class-transformer'; 2 | 3 | // TODO: Use unions 4 | export class SelectFilter { 5 | /** 6 | * Returns database entries where the select property value matches the provided string. 7 | * 8 | * @examplee "This week" 9 | */ 10 | @Expose() 11 | equals: string; 12 | 13 | /** 14 | * Returns database entries where the select property value does not match the provided string. 15 | * 16 | * @example "Backlog" 17 | */ 18 | @Expose({ name: 'does_not_equal' }) 19 | doesNotEqual: string; 20 | 21 | /** 22 | * Returns database entries where the select property value is empty. 23 | */ 24 | @Expose({ name: 'is_empty' }) 25 | isEmpty: true; 26 | 27 | /** 28 | * Returns database entries where the select property value is not empty. 29 | */ 30 | @Expose({ name: 'is_not_empty' }) 31 | isNotEmpty: true; 32 | } 33 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/classes/properties/timestamp.ts: -------------------------------------------------------------------------------- 1 | // TODO: https://developers.notion.com/reference/post-database-query-filter#timestamp 2 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/client.ts: -------------------------------------------------------------------------------- 1 | import { plainToInstance } from 'class-transformer'; 2 | import PQueue from 'p-queue'; 3 | import pRetry, { AbortError } from 'p-retry'; 4 | 5 | import { Database } from './classes/database'; 6 | import { normalizeDatabaseSchema } from './helpers/normalize-database-schema'; 7 | import { normalizeFilters } from './helpers/normalize-filters'; 8 | import { normalizeSorts } from './helpers/normalize-sorts'; 9 | import { deserializePage } from './helpers/serialize'; 10 | import { DatabaseSchema, QueryOptions } from './types/database'; 11 | import { PageWithProperties } from './types/page'; 12 | 13 | export type ClientOptions = { 14 | /** 15 | * Authentication token. 16 | * Can be an Internal Integration Token, Public Integration Token or Access Token. 17 | * 18 | * @example "secret_DiLCPjimH8oFAF5KcMFYC3Memobo3RxByoiYPqdEimH" 19 | */ 20 | auth: string; 21 | 22 | /** 23 | * Notion API Url. 24 | * 25 | * @default https://api.notion.com 26 | */ 27 | apiUrl?: string; 28 | 29 | /** 30 | * Notion API Version. 31 | * 32 | * @default v1 33 | */ 34 | apiVersion?: 'v1'; 35 | 36 | /** 37 | * Notion version. 38 | * 39 | * @example 2022-06-28 40 | */ 41 | notionVersion?: '2022-06-28'; 42 | }; 43 | 44 | export class Client { 45 | queue: PQueue; 46 | 47 | constructor(private options: ClientOptions) { 48 | this.queue = new PQueue({ interval: 100, intervalCap: 4 }); 49 | } 50 | 51 | async database(id: string): Promise { 52 | const response = await this.request(`/databases/${id}`); 53 | return plainToInstance(Database, response, { 54 | excludeExtraneousValues: true, 55 | }); 56 | } 57 | 58 | async queryDatabase( 59 | databaseId: string, 60 | schema: S, 61 | options?: QueryOptions 62 | ): Promise[]> { 63 | const normalizedShema = normalizeDatabaseSchema(schema); 64 | const normalizedFilters = normalizeFilters( 65 | normalizedShema, 66 | options?.filter 67 | ); 68 | const normalizedSorts = normalizeSorts(normalizedShema, options?.sorts); 69 | 70 | const { results } = await this.request(`/databases/${databaseId}/query`, { 71 | method: 'POST', 72 | body: JSON.stringify({ 73 | filter: normalizedFilters, 74 | sorts: normalizedSorts, 75 | }), 76 | }); 77 | 78 | return results.map((result: any) => 79 | deserializePage(this, normalizedShema, result) 80 | ); 81 | } 82 | 83 | async page( 84 | pageId: string, 85 | schema: S 86 | ): Promise> { 87 | const normalizedSchema = normalizeDatabaseSchema(schema); 88 | const result = await this.request(`/pages/${pageId}`); 89 | return deserializePage(this, normalizedSchema, result); 90 | } 91 | 92 | /** 93 | * Request the Notion API. 94 | * Include a queuing and retrying system to respect Rate Limiting. 95 | */ 96 | request(path: string, init?: RequestInit) { 97 | return this.queue.add(() => 98 | pRetry( 99 | async () => { 100 | const response = await fetch( 101 | `${this.options.apiUrl ?? 'https://api.notion.com'}/${ 102 | this.options.apiVersion ?? 'v1' 103 | }${path}`, 104 | { 105 | ...init, 106 | headers: { 107 | 'Content-Type': 'application/json', 108 | Authorization: `Bearer ${this.options.auth}`, 109 | 'Notion-Version': this.options.notionVersion ?? '2022-06-28', 110 | }, 111 | } 112 | ); 113 | 114 | if (!response.ok) { 115 | /** 116 | * TODO: Add retryable errors 117 | */ 118 | if ([0].includes(response.status)) { 119 | throw new Error('TODO'); 120 | } 121 | 122 | throw new AbortError(await response.text()); 123 | } 124 | 125 | return response.json(); 126 | }, 127 | { 128 | retries: 5, 129 | onFailedAttempt: async () => 130 | new Promise((res) => setTimeout(res, 1000)), 131 | } 132 | ) 133 | ) as Promise; 134 | } 135 | } 136 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/helpers/normalize-database-schema.ts: -------------------------------------------------------------------------------- 1 | import { mapValues } from 'lodash'; 2 | 3 | import { DatabaseSchema, NormalizeDatabaseSchema } from '../types/database'; 4 | 5 | export function normalizeDatabaseSchema( 6 | schema: S 7 | ): NormalizeDatabaseSchema { 8 | return mapValues(schema, (v, key) => 9 | typeof v === 'string' ? { name: key, type: v } : v 10 | ) as NormalizeDatabaseSchema; 11 | } 12 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/helpers/normalize-filters.ts: -------------------------------------------------------------------------------- 1 | import { instanceToPlain } from 'class-transformer'; 2 | import { entries } from 'lodash'; 3 | 4 | import { DatabaseSchema, NormalizeDatabaseSchema } from '../types/database'; 5 | import { Filter } from '../types/filters'; 6 | 7 | export function normalizeFilters( 8 | schema: NormalizeDatabaseSchema, 9 | filters: Filter[] = [], 10 | root = true 11 | ): Record { 12 | if (!filters) return []; 13 | 14 | const output: any[] = []; 15 | 16 | for (const f of filters) { 17 | for (const [key, filter] of entries(f)) { 18 | if (!filter) continue; // TODO: Check why type says it can be undefined 19 | 20 | if (['or', 'and'].includes(key)) { 21 | output.push({ 22 | [key]: normalizeFilters( 23 | schema, 24 | filter as unknown as Filter[], 25 | false 26 | ), // TODO: Check why typing is wrong 27 | }); 28 | } else { 29 | const property = schema[key]; 30 | output.push({ 31 | property: 'name' in property ? property.name : property.id, 32 | [property.type]: instanceToPlain(filter), 33 | }); 34 | } 35 | } 36 | } 37 | 38 | if (root) { 39 | return output.length > 1 ? { and: output } : output[0]; 40 | } 41 | 42 | return output; 43 | } 44 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/helpers/normalize-sorts.ts: -------------------------------------------------------------------------------- 1 | import { entries } from 'lodash'; 2 | 3 | import { DatabaseSchema, NormalizeDatabaseSchema } from '../types/database'; 4 | import { SortDirection, Sorts } from '../types/sort'; 5 | 6 | export function normalizeSorts( 7 | schema: NormalizeDatabaseSchema, 8 | sorts?: Sorts 9 | ): { property: string; direction: SortDirection }[] { 10 | return sorts 11 | ? entries(sorts).map(([key, direction]) => { 12 | const property = schema[key]; 13 | return { 14 | property: 'id' in property ? property.id : property.name, 15 | direction: direction!, 16 | }; 17 | }) 18 | : []; 19 | } 20 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/helpers/serialize.ts: -------------------------------------------------------------------------------- 1 | import { ClassConstructor, plainToInstance } from 'class-transformer'; 2 | import { entries } from 'lodash'; 3 | 4 | import { Page } from '../classes/page'; 5 | import { Client } from '../client'; 6 | import { DatabaseSchema, NormalizeDatabaseSchema } from '../types/database'; 7 | import { PageWithProperties } from '../types/page'; 8 | 9 | export function deserialize( 10 | client: Client, 11 | cls: ClassConstructor, 12 | plain: V[] 13 | ): T[]; 14 | export function deserialize( 15 | client: Client, 16 | cls: ClassConstructor, 17 | plain: V 18 | ): T { 19 | const instance = plainToInstance(cls, plain); 20 | instance.client = client; 21 | return instance; 22 | } 23 | 24 | export function deserializePage( 25 | client: Client, 26 | schema: NormalizeDatabaseSchema, 27 | data: any 28 | ): PageWithProperties { 29 | const page = deserialize(client, Page, data) as any; 30 | 31 | for (const [key, config] of entries(schema)) { 32 | let property; 33 | if ('name' in config) { 34 | property = data.properties[config.name]; 35 | } else { 36 | property = Object.values(data.properties).find( 37 | (p: any) => p.id === config.id 38 | ) as any; 39 | } 40 | 41 | if (!property) 42 | throw new Error(`Property "${key}" does not exist in the database"`); 43 | 44 | page[key] = property[config.type]; 45 | } 46 | 47 | return page; 48 | } 49 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/index.ts: -------------------------------------------------------------------------------- 1 | import 'reflect-metadata'; 2 | 3 | export * from './client'; 4 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/types/database.ts: -------------------------------------------------------------------------------- 1 | import { Filter } from './filters'; 2 | import { PropertyType } from './properties'; 3 | import { Sorts } from './sort'; 4 | 5 | export type DatabasePropertiesSchema = { 6 | [name: string]: PropertyType; 7 | }; 8 | 9 | export type PropertyConfig = 10 | | ( 11 | | { 12 | name: string; 13 | } 14 | | { id: string } 15 | ) & { type: PropertyType }; 16 | 17 | export type DatabaseSchema = { 18 | [name: string]: PropertyType | PropertyConfig; 19 | }; 20 | 21 | export type NormalizeDatabaseSchema = { 22 | [key in keyof S]: S[key] extends PropertyConfig 23 | ? S[key] 24 | : S[key] extends PropertyType 25 | ? { name: key; type: S[key] } 26 | : never; 27 | }; 28 | 29 | export type ExtractPropertyConfigType = 30 | T extends PropertyType ? T : T extends PropertyConfig ? T['type'] : never; 31 | 32 | export type QueryOptions = { 33 | filter?: Filter[]; 34 | sorts?: Sorts; 35 | }; 36 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/types/filters.ts: -------------------------------------------------------------------------------- 1 | import { Jsonify, RequireExactlyOne } from 'type-fest'; 2 | 3 | import { FILTER_CLASSES_MAPPING } from '../classes/contants'; 4 | import { DatabaseSchema, NormalizeDatabaseSchema } from './database'; 5 | import { PropertyType } from './properties'; 6 | 7 | export type PropertyFilter = 8 | T extends keyof typeof FILTER_CLASSES_MAPPING 9 | ? (typeof FILTER_CLASSES_MAPPING)[T]['prototype'] 10 | : never; 11 | 12 | export type Filter = RequireExactlyOne< 13 | { or: Filter[]; and: Filter[] } & { 14 | [key in keyof NormalizeDatabaseSchema]: RequireExactlyOne< 15 | Jsonify[key]['type']>> 16 | >; 17 | } 18 | >; 19 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/types/page.ts: -------------------------------------------------------------------------------- 1 | import { Page } from '../classes/page'; 2 | import { DatabaseSchema, ExtractPropertyConfigType } from './database'; 3 | import { PropertyValue } from './properties'; 4 | 5 | export type PageWithProperties = Page & { 6 | [key in keyof T]: PropertyValue>; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/types/properties.ts: -------------------------------------------------------------------------------- 1 | export type PropertyType = 2 | | 'checkbox' 3 | | 'created_by' 4 | | 'created_time' 5 | | 'date' 6 | | 'email' 7 | | 'files' 8 | | 'formula' 9 | | 'last_edited_by' 10 | | 'last_edited_time' 11 | | 'multi_select' 12 | | 'number' 13 | | 'people' 14 | | 'phone_number' 15 | | 'relation' 16 | | 'rollup' 17 | | 'rich_text' 18 | | 'select' 19 | | 'status' 20 | | 'title'; 21 | 22 | export type PropertyValueMapping = { 23 | checkbox: boolean; 24 | }; 25 | 26 | export type PropertyValue = 27 | T extends keyof PropertyValueMapping ? PropertyValueMapping[T] : never; 28 | -------------------------------------------------------------------------------- /packages/@notionx/client/src/types/sort.ts: -------------------------------------------------------------------------------- 1 | import { DatabaseSchema, NormalizeDatabaseSchema } from './database'; 2 | 3 | export type SortDirection = 'ascending' | 'descending'; 4 | 5 | export type Sorts = { 6 | [key in keyof NormalizeDatabaseSchema]?: SortDirection; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/@notionx/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "tsconfig/base.json", 3 | "compilerOptions": { 4 | "module": "CommonJS", 5 | "rootDir": "./src", 6 | "outDir": "./dist", 7 | "sourceMap": true, 8 | "incremental": true, 9 | "composite": true, 10 | "tsBuildInfoFile": "./dist/.tsbuildinfo.json", 11 | "strictPropertyInitialization": false, 12 | "experimentalDecorators": true, 13 | "emitDecoratorMetadata": true 14 | }, 15 | "include": ["./src"] 16 | } 17 | -------------------------------------------------------------------------------- /packages/eslint/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | 'turbo', 4 | 'eslint:recommended', 5 | 'plugin:@typescript-eslint/recommended', 6 | ], 7 | parser: '@typescript-eslint/parser', 8 | plugins: [ 9 | '@typescript-eslint', 10 | 'prettier', 11 | 'import', 12 | 'simple-import-sort', 13 | 'unused-imports', 14 | ], 15 | rules: { 16 | 'prettier/prettier': 'error', 17 | 'simple-import-sort/imports': 'error', 18 | 'simple-import-sort/exports': 'error', 19 | 'import/no-extraneous-dependencies': 'error', 20 | 'unused-imports/no-unused-imports': 'error', 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /packages/eslint/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eslint-config-notionx", 3 | "version": "0.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "dependencies": { 7 | "@typescript-eslint/eslint-plugin": "^5.59.5", 8 | "@typescript-eslint/parser": "^5.59.5", 9 | "eslint": "^8.40.0", 10 | "eslint-config-turbo": "^1.9.3", 11 | "eslint-plugin-import": "^2.27.5", 12 | "eslint-plugin-prettier": "^4.2.1", 13 | "eslint-plugin-simple-import-sort": "^10.0.0", 14 | "eslint-plugin-turbo": "^1.9.4", 15 | "eslint-plugin-unused-imports": "^2.0.0", 16 | "typescript": "^5.0.4" 17 | }, 18 | "publishConfig": { 19 | "access": "public" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/tsconfig/base.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "display": "Default", 4 | "compilerOptions": { 5 | "composite": false, 6 | "declaration": true, 7 | "declarationMap": true, 8 | "esModuleInterop": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "inlineSources": false, 11 | "isolatedModules": true, 12 | "moduleResolution": "node", 13 | "noUnusedLocals": false, 14 | "noUnusedParameters": false, 15 | "preserveWatchOutput": true, 16 | "skipLibCheck": true, 17 | "strict": true 18 | }, 19 | "exclude": [ 20 | "node_modules" 21 | ] 22 | } -------------------------------------------------------------------------------- /packages/tsconfig/nextjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "display": "Next.js", 4 | "extends": "./base.json", 5 | "compilerOptions": { 6 | "plugins": [{ "name": "next" }], 7 | "allowJs": true, 8 | "declaration": false, 9 | "declarationMap": false, 10 | "incremental": true, 11 | "jsx": "preserve", 12 | "lib": ["dom", "dom.iterable", "esnext"], 13 | "module": "esnext", 14 | "noEmit": true, 15 | "resolveJsonModule": true, 16 | "strict": false, 17 | "target": "es5" 18 | }, 19 | "include": ["src", "next-env.d.ts"], 20 | "exclude": ["node_modules"] 21 | } 22 | -------------------------------------------------------------------------------- /packages/tsconfig/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tsconfig", 3 | "version": "0.0.0", 4 | "private": true, 5 | "license": "MIT", 6 | "publishConfig": { 7 | "access": "public" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/tsconfig/react-library.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "display": "React Library", 4 | "extends": "./base.json", 5 | "compilerOptions": { 6 | "jsx": "react-jsx", 7 | "lib": ["ES2015", "DOM"], 8 | "module": "ESNext", 9 | "target": "es6" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turbo.build/schema.json", 3 | "globalDependencies": [ 4 | "**/.env.*local" 5 | ], 6 | "globalEnv": [ 7 | "NOTION_TOKEN" 8 | ], 9 | "pipeline": { 10 | "build": { 11 | "dependsOn": [ 12 | "^build" 13 | ], 14 | "outputs": [ 15 | "dist/**" 16 | ] 17 | }, 18 | "lint": {}, 19 | "lint:fix": {}, 20 | "test": {}, 21 | "dev": { 22 | "cache": false, 23 | "persistent": true 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.12.11": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/helper-validator-identifier@^7.18.6": 13 | version "7.19.1" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 15 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 16 | 17 | "@babel/highlight@^7.10.4": 18 | version "7.18.6" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 20 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.18.6" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@eslint-community/eslint-utils@^4.2.0": 27 | version "4.4.0" 28 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" 29 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 30 | dependencies: 31 | eslint-visitor-keys "^3.3.0" 32 | 33 | "@eslint-community/regexpp@^4.4.0": 34 | version "4.5.1" 35 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" 36 | integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== 37 | 38 | "@eslint/eslintrc@^0.4.3": 39 | version "0.4.3" 40 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" 41 | integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== 42 | dependencies: 43 | ajv "^6.12.4" 44 | debug "^4.1.1" 45 | espree "^7.3.0" 46 | globals "^13.9.0" 47 | ignore "^4.0.6" 48 | import-fresh "^3.2.1" 49 | js-yaml "^3.13.1" 50 | minimatch "^3.0.4" 51 | strip-json-comments "^3.1.1" 52 | 53 | "@eslint/eslintrc@^2.0.3": 54 | version "2.0.3" 55 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" 56 | integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== 57 | dependencies: 58 | ajv "^6.12.4" 59 | debug "^4.3.2" 60 | espree "^9.5.2" 61 | globals "^13.19.0" 62 | ignore "^5.2.0" 63 | import-fresh "^3.2.1" 64 | js-yaml "^4.1.0" 65 | minimatch "^3.1.2" 66 | strip-json-comments "^3.1.1" 67 | 68 | "@eslint/js@8.40.0": 69 | version "8.40.0" 70 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec" 71 | integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA== 72 | 73 | "@humanwhocodes/config-array@^0.11.8": 74 | version "0.11.8" 75 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" 76 | integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== 77 | dependencies: 78 | "@humanwhocodes/object-schema" "^1.2.1" 79 | debug "^4.1.1" 80 | minimatch "^3.0.5" 81 | 82 | "@humanwhocodes/config-array@^0.5.0": 83 | version "0.5.0" 84 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" 85 | integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== 86 | dependencies: 87 | "@humanwhocodes/object-schema" "^1.2.0" 88 | debug "^4.1.1" 89 | minimatch "^3.0.4" 90 | 91 | "@humanwhocodes/module-importer@^1.0.1": 92 | version "1.0.1" 93 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 94 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 95 | 96 | "@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": 97 | version "1.2.1" 98 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 99 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 100 | 101 | "@nodelib/fs.scandir@2.1.5": 102 | version "2.1.5" 103 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 104 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 105 | dependencies: 106 | "@nodelib/fs.stat" "2.0.5" 107 | run-parallel "^1.1.9" 108 | 109 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 110 | version "2.0.5" 111 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 112 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 113 | 114 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": 115 | version "1.2.8" 116 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 117 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 118 | dependencies: 119 | "@nodelib/fs.scandir" "2.1.5" 120 | fastq "^1.6.0" 121 | 122 | "@types/json-schema@^7.0.9": 123 | version "7.0.11" 124 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" 125 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 126 | 127 | "@types/json5@^0.0.29": 128 | version "0.0.29" 129 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 130 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 131 | 132 | "@types/lodash@^4.14.194": 133 | version "4.14.194" 134 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76" 135 | integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g== 136 | 137 | "@types/retry@0.12.0": 138 | version "0.12.0" 139 | resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" 140 | integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== 141 | 142 | "@types/semver@^7.3.12": 143 | version "7.5.0" 144 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" 145 | integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== 146 | 147 | "@typescript-eslint/eslint-plugin@^5.59.5": 148 | version "5.59.5" 149 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz#f156827610a3f8cefc56baeaa93cd4a5f32966b4" 150 | integrity sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg== 151 | dependencies: 152 | "@eslint-community/regexpp" "^4.4.0" 153 | "@typescript-eslint/scope-manager" "5.59.5" 154 | "@typescript-eslint/type-utils" "5.59.5" 155 | "@typescript-eslint/utils" "5.59.5" 156 | debug "^4.3.4" 157 | grapheme-splitter "^1.0.4" 158 | ignore "^5.2.0" 159 | natural-compare-lite "^1.4.0" 160 | semver "^7.3.7" 161 | tsutils "^3.21.0" 162 | 163 | "@typescript-eslint/parser@^5.59.5": 164 | version "5.59.5" 165 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.5.tgz#63064f5eafbdbfb5f9dfbf5c4503cdf949852981" 166 | integrity sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw== 167 | dependencies: 168 | "@typescript-eslint/scope-manager" "5.59.5" 169 | "@typescript-eslint/types" "5.59.5" 170 | "@typescript-eslint/typescript-estree" "5.59.5" 171 | debug "^4.3.4" 172 | 173 | "@typescript-eslint/scope-manager@5.59.5": 174 | version "5.59.5" 175 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz#33ffc7e8663f42cfaac873de65ebf65d2bce674d" 176 | integrity sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A== 177 | dependencies: 178 | "@typescript-eslint/types" "5.59.5" 179 | "@typescript-eslint/visitor-keys" "5.59.5" 180 | 181 | "@typescript-eslint/type-utils@5.59.5": 182 | version "5.59.5" 183 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz#485b0e2c5b923460bc2ea6b338c595343f06fc9b" 184 | integrity sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg== 185 | dependencies: 186 | "@typescript-eslint/typescript-estree" "5.59.5" 187 | "@typescript-eslint/utils" "5.59.5" 188 | debug "^4.3.4" 189 | tsutils "^3.21.0" 190 | 191 | "@typescript-eslint/types@5.59.5": 192 | version "5.59.5" 193 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.5.tgz#e63c5952532306d97c6ea432cee0981f6d2258c7" 194 | integrity sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w== 195 | 196 | "@typescript-eslint/typescript-estree@5.59.5": 197 | version "5.59.5" 198 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz#9b252ce55dd765e972a7a2f99233c439c5101e42" 199 | integrity sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg== 200 | dependencies: 201 | "@typescript-eslint/types" "5.59.5" 202 | "@typescript-eslint/visitor-keys" "5.59.5" 203 | debug "^4.3.4" 204 | globby "^11.1.0" 205 | is-glob "^4.0.3" 206 | semver "^7.3.7" 207 | tsutils "^3.21.0" 208 | 209 | "@typescript-eslint/utils@5.59.5": 210 | version "5.59.5" 211 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.5.tgz#15b3eb619bb223302e60413adb0accd29c32bcae" 212 | integrity sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA== 213 | dependencies: 214 | "@eslint-community/eslint-utils" "^4.2.0" 215 | "@types/json-schema" "^7.0.9" 216 | "@types/semver" "^7.3.12" 217 | "@typescript-eslint/scope-manager" "5.59.5" 218 | "@typescript-eslint/types" "5.59.5" 219 | "@typescript-eslint/typescript-estree" "5.59.5" 220 | eslint-scope "^5.1.1" 221 | semver "^7.3.7" 222 | 223 | "@typescript-eslint/visitor-keys@5.59.5": 224 | version "5.59.5" 225 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz#ba5b8d6791a13cf9fea6716af1e7626434b29b9b" 226 | integrity sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA== 227 | dependencies: 228 | "@typescript-eslint/types" "5.59.5" 229 | eslint-visitor-keys "^3.3.0" 230 | 231 | acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: 232 | version "5.3.2" 233 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 234 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 235 | 236 | acorn@^7.4.0: 237 | version "7.4.1" 238 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 239 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 240 | 241 | acorn@^8.8.0: 242 | version "8.8.2" 243 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" 244 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== 245 | 246 | ajv@^6.10.0, ajv@^6.12.4: 247 | version "6.12.6" 248 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 249 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 250 | dependencies: 251 | fast-deep-equal "^3.1.1" 252 | fast-json-stable-stringify "^2.0.0" 253 | json-schema-traverse "^0.4.1" 254 | uri-js "^4.2.2" 255 | 256 | ajv@^8.0.1: 257 | version "8.12.0" 258 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" 259 | integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== 260 | dependencies: 261 | fast-deep-equal "^3.1.1" 262 | json-schema-traverse "^1.0.0" 263 | require-from-string "^2.0.2" 264 | uri-js "^4.2.2" 265 | 266 | ansi-colors@^4.1.1: 267 | version "4.1.3" 268 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" 269 | integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== 270 | 271 | ansi-regex@^5.0.1: 272 | version "5.0.1" 273 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 274 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 275 | 276 | ansi-styles@^3.2.1: 277 | version "3.2.1" 278 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 279 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 280 | dependencies: 281 | color-convert "^1.9.0" 282 | 283 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 284 | version "4.3.0" 285 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 286 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 287 | dependencies: 288 | color-convert "^2.0.1" 289 | 290 | argparse@^1.0.7: 291 | version "1.0.10" 292 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 293 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 294 | dependencies: 295 | sprintf-js "~1.0.2" 296 | 297 | argparse@^2.0.1: 298 | version "2.0.1" 299 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 300 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 301 | 302 | array-buffer-byte-length@^1.0.0: 303 | version "1.0.0" 304 | resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" 305 | integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== 306 | dependencies: 307 | call-bind "^1.0.2" 308 | is-array-buffer "^3.0.1" 309 | 310 | array-includes@^3.1.6: 311 | version "3.1.6" 312 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" 313 | integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== 314 | dependencies: 315 | call-bind "^1.0.2" 316 | define-properties "^1.1.4" 317 | es-abstract "^1.20.4" 318 | get-intrinsic "^1.1.3" 319 | is-string "^1.0.7" 320 | 321 | array-union@^2.1.0: 322 | version "2.1.0" 323 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 324 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 325 | 326 | array.prototype.flat@^1.3.1: 327 | version "1.3.1" 328 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" 329 | integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== 330 | dependencies: 331 | call-bind "^1.0.2" 332 | define-properties "^1.1.4" 333 | es-abstract "^1.20.4" 334 | es-shim-unscopables "^1.0.0" 335 | 336 | array.prototype.flatmap@^1.3.1: 337 | version "1.3.1" 338 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" 339 | integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== 340 | dependencies: 341 | call-bind "^1.0.2" 342 | define-properties "^1.1.4" 343 | es-abstract "^1.20.4" 344 | es-shim-unscopables "^1.0.0" 345 | 346 | astral-regex@^2.0.0: 347 | version "2.0.0" 348 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 349 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 350 | 351 | available-typed-arrays@^1.0.5: 352 | version "1.0.5" 353 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" 354 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== 355 | 356 | balanced-match@^1.0.0: 357 | version "1.0.2" 358 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 359 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 360 | 361 | brace-expansion@^1.1.7: 362 | version "1.1.11" 363 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 364 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 365 | dependencies: 366 | balanced-match "^1.0.0" 367 | concat-map "0.0.1" 368 | 369 | braces@^3.0.2: 370 | version "3.0.2" 371 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 372 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 373 | dependencies: 374 | fill-range "^7.0.1" 375 | 376 | call-bind@^1.0.0, call-bind@^1.0.2: 377 | version "1.0.2" 378 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 379 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 380 | dependencies: 381 | function-bind "^1.1.1" 382 | get-intrinsic "^1.0.2" 383 | 384 | callsites@^3.0.0: 385 | version "3.1.0" 386 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 387 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 388 | 389 | chalk@^2.0.0: 390 | version "2.4.2" 391 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 392 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 393 | dependencies: 394 | ansi-styles "^3.2.1" 395 | escape-string-regexp "^1.0.5" 396 | supports-color "^5.3.0" 397 | 398 | chalk@^4.0.0: 399 | version "4.1.2" 400 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 401 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 402 | dependencies: 403 | ansi-styles "^4.1.0" 404 | supports-color "^7.1.0" 405 | 406 | class-transformer@^0.5.1: 407 | version "0.5.1" 408 | resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" 409 | integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== 410 | 411 | color-convert@^1.9.0: 412 | version "1.9.3" 413 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 414 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 415 | dependencies: 416 | color-name "1.1.3" 417 | 418 | color-convert@^2.0.1: 419 | version "2.0.1" 420 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 421 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 422 | dependencies: 423 | color-name "~1.1.4" 424 | 425 | color-name@1.1.3: 426 | version "1.1.3" 427 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 428 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 429 | 430 | color-name@~1.1.4: 431 | version "1.1.4" 432 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 433 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 434 | 435 | concat-map@0.0.1: 436 | version "0.0.1" 437 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 438 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 439 | 440 | cross-spawn@^7.0.2: 441 | version "7.0.3" 442 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 443 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 444 | dependencies: 445 | path-key "^3.1.0" 446 | shebang-command "^2.0.0" 447 | which "^2.0.1" 448 | 449 | debug@^3.2.7: 450 | version "3.2.7" 451 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 452 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 453 | dependencies: 454 | ms "^2.1.1" 455 | 456 | debug@^4.0.1, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: 457 | version "4.3.4" 458 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 459 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 460 | dependencies: 461 | ms "2.1.2" 462 | 463 | deep-is@^0.1.3: 464 | version "0.1.4" 465 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 466 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 467 | 468 | deepmerge@^4.2.2: 469 | version "4.3.1" 470 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" 471 | integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== 472 | 473 | define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: 474 | version "1.2.0" 475 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" 476 | integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== 477 | dependencies: 478 | has-property-descriptors "^1.0.0" 479 | object-keys "^1.1.1" 480 | 481 | dir-glob@^3.0.1: 482 | version "3.0.1" 483 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 484 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 485 | dependencies: 486 | path-type "^4.0.0" 487 | 488 | doctrine@^2.1.0: 489 | version "2.1.0" 490 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 491 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 492 | dependencies: 493 | esutils "^2.0.2" 494 | 495 | doctrine@^3.0.0: 496 | version "3.0.0" 497 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 498 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 499 | dependencies: 500 | esutils "^2.0.2" 501 | 502 | dom-serializer@^2.0.0: 503 | version "2.0.0" 504 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" 505 | integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== 506 | dependencies: 507 | domelementtype "^2.3.0" 508 | domhandler "^5.0.2" 509 | entities "^4.2.0" 510 | 511 | domelementtype@^2.3.0: 512 | version "2.3.0" 513 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 514 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 515 | 516 | domhandler@^5.0.2, domhandler@^5.0.3: 517 | version "5.0.3" 518 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" 519 | integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== 520 | dependencies: 521 | domelementtype "^2.3.0" 522 | 523 | domutils@^3.0.1: 524 | version "3.1.0" 525 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" 526 | integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== 527 | dependencies: 528 | dom-serializer "^2.0.0" 529 | domelementtype "^2.3.0" 530 | domhandler "^5.0.3" 531 | 532 | emoji-regex@^8.0.0: 533 | version "8.0.0" 534 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 535 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 536 | 537 | enquirer@^2.3.5: 538 | version "2.3.6" 539 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 540 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 541 | dependencies: 542 | ansi-colors "^4.1.1" 543 | 544 | entities@^4.2.0, entities@^4.4.0: 545 | version "4.5.0" 546 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" 547 | integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== 548 | 549 | es-abstract@^1.19.0, es-abstract@^1.20.4: 550 | version "1.21.2" 551 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" 552 | integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== 553 | dependencies: 554 | array-buffer-byte-length "^1.0.0" 555 | available-typed-arrays "^1.0.5" 556 | call-bind "^1.0.2" 557 | es-set-tostringtag "^2.0.1" 558 | es-to-primitive "^1.2.1" 559 | function.prototype.name "^1.1.5" 560 | get-intrinsic "^1.2.0" 561 | get-symbol-description "^1.0.0" 562 | globalthis "^1.0.3" 563 | gopd "^1.0.1" 564 | has "^1.0.3" 565 | has-property-descriptors "^1.0.0" 566 | has-proto "^1.0.1" 567 | has-symbols "^1.0.3" 568 | internal-slot "^1.0.5" 569 | is-array-buffer "^3.0.2" 570 | is-callable "^1.2.7" 571 | is-negative-zero "^2.0.2" 572 | is-regex "^1.1.4" 573 | is-shared-array-buffer "^1.0.2" 574 | is-string "^1.0.7" 575 | is-typed-array "^1.1.10" 576 | is-weakref "^1.0.2" 577 | object-inspect "^1.12.3" 578 | object-keys "^1.1.1" 579 | object.assign "^4.1.4" 580 | regexp.prototype.flags "^1.4.3" 581 | safe-regex-test "^1.0.0" 582 | string.prototype.trim "^1.2.7" 583 | string.prototype.trimend "^1.0.6" 584 | string.prototype.trimstart "^1.0.6" 585 | typed-array-length "^1.0.4" 586 | unbox-primitive "^1.0.2" 587 | which-typed-array "^1.1.9" 588 | 589 | es-set-tostringtag@^2.0.1: 590 | version "2.0.1" 591 | resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" 592 | integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== 593 | dependencies: 594 | get-intrinsic "^1.1.3" 595 | has "^1.0.3" 596 | has-tostringtag "^1.0.0" 597 | 598 | es-shim-unscopables@^1.0.0: 599 | version "1.0.0" 600 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" 601 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== 602 | dependencies: 603 | has "^1.0.3" 604 | 605 | es-to-primitive@^1.2.1: 606 | version "1.2.1" 607 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 608 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 609 | dependencies: 610 | is-callable "^1.1.4" 611 | is-date-object "^1.0.1" 612 | is-symbol "^1.0.2" 613 | 614 | escape-string-regexp@^1.0.5: 615 | version "1.0.5" 616 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 617 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 618 | 619 | escape-string-regexp@^4.0.0: 620 | version "4.0.0" 621 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 622 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 623 | 624 | eslint-config-turbo@^1.9.3: 625 | version "1.9.4" 626 | resolved "https://registry.yarnpkg.com/eslint-config-turbo/-/eslint-config-turbo-1.9.4.tgz#7395c57b8219e536836e1b6b67e64648f7a0f642" 627 | integrity sha512-pB9Jg1Zn0Qo25LLxmvcMgjBmw8sEt6rwJO8oTKjO4DEQVUAMoNHcR7bdQCdIszHV3c1tYUjbJgm0L1B9qU81nw== 628 | dependencies: 629 | eslint-plugin-turbo "1.9.4" 630 | 631 | eslint-import-resolver-node@^0.3.7: 632 | version "0.3.7" 633 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" 634 | integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== 635 | dependencies: 636 | debug "^3.2.7" 637 | is-core-module "^2.11.0" 638 | resolve "^1.22.1" 639 | 640 | eslint-module-utils@^2.7.4: 641 | version "2.8.0" 642 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" 643 | integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== 644 | dependencies: 645 | debug "^3.2.7" 646 | 647 | eslint-plugin-import@^2.27.5: 648 | version "2.27.5" 649 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" 650 | integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== 651 | dependencies: 652 | array-includes "^3.1.6" 653 | array.prototype.flat "^1.3.1" 654 | array.prototype.flatmap "^1.3.1" 655 | debug "^3.2.7" 656 | doctrine "^2.1.0" 657 | eslint-import-resolver-node "^0.3.7" 658 | eslint-module-utils "^2.7.4" 659 | has "^1.0.3" 660 | is-core-module "^2.11.0" 661 | is-glob "^4.0.3" 662 | minimatch "^3.1.2" 663 | object.values "^1.1.6" 664 | resolve "^1.22.1" 665 | semver "^6.3.0" 666 | tsconfig-paths "^3.14.1" 667 | 668 | eslint-plugin-prettier@^4.2.1: 669 | version "4.2.1" 670 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" 671 | integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== 672 | dependencies: 673 | prettier-linter-helpers "^1.0.0" 674 | 675 | eslint-plugin-simple-import-sort@^10.0.0: 676 | version "10.0.0" 677 | resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351" 678 | integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== 679 | 680 | eslint-plugin-turbo@1.9.4, eslint-plugin-turbo@^1.9.4: 681 | version "1.9.4" 682 | resolved "https://registry.yarnpkg.com/eslint-plugin-turbo/-/eslint-plugin-turbo-1.9.4.tgz#24e4d97879ea38ae8611fe837ddae58f40269dd6" 683 | integrity sha512-ySDJl63nIWa+j9WOAnblBWKDyaCTfGCYhSNSMCe0N5Jk01YWMEowFr2bGw31Zg0dOijioYo9ewwfLLKbJYOUmQ== 684 | 685 | eslint-plugin-unused-imports@^2.0.0: 686 | version "2.0.0" 687 | resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520" 688 | integrity sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A== 689 | dependencies: 690 | eslint-rule-composer "^0.3.0" 691 | 692 | eslint-rule-composer@^0.3.0: 693 | version "0.3.0" 694 | resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" 695 | integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== 696 | 697 | eslint-scope@^5.1.1: 698 | version "5.1.1" 699 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 700 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 701 | dependencies: 702 | esrecurse "^4.3.0" 703 | estraverse "^4.1.1" 704 | 705 | eslint-scope@^7.2.0: 706 | version "7.2.0" 707 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" 708 | integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== 709 | dependencies: 710 | esrecurse "^4.3.0" 711 | estraverse "^5.2.0" 712 | 713 | eslint-utils@^2.1.0: 714 | version "2.1.0" 715 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 716 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 717 | dependencies: 718 | eslint-visitor-keys "^1.1.0" 719 | 720 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 721 | version "1.3.0" 722 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 723 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 724 | 725 | eslint-visitor-keys@^2.0.0: 726 | version "2.1.0" 727 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 728 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 729 | 730 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: 731 | version "3.4.1" 732 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" 733 | integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== 734 | 735 | eslint@^7.32.0: 736 | version "7.32.0" 737 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" 738 | integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== 739 | dependencies: 740 | "@babel/code-frame" "7.12.11" 741 | "@eslint/eslintrc" "^0.4.3" 742 | "@humanwhocodes/config-array" "^0.5.0" 743 | ajv "^6.10.0" 744 | chalk "^4.0.0" 745 | cross-spawn "^7.0.2" 746 | debug "^4.0.1" 747 | doctrine "^3.0.0" 748 | enquirer "^2.3.5" 749 | escape-string-regexp "^4.0.0" 750 | eslint-scope "^5.1.1" 751 | eslint-utils "^2.1.0" 752 | eslint-visitor-keys "^2.0.0" 753 | espree "^7.3.1" 754 | esquery "^1.4.0" 755 | esutils "^2.0.2" 756 | fast-deep-equal "^3.1.3" 757 | file-entry-cache "^6.0.1" 758 | functional-red-black-tree "^1.0.1" 759 | glob-parent "^5.1.2" 760 | globals "^13.6.0" 761 | ignore "^4.0.6" 762 | import-fresh "^3.0.0" 763 | imurmurhash "^0.1.4" 764 | is-glob "^4.0.0" 765 | js-yaml "^3.13.1" 766 | json-stable-stringify-without-jsonify "^1.0.1" 767 | levn "^0.4.1" 768 | lodash.merge "^4.6.2" 769 | minimatch "^3.0.4" 770 | natural-compare "^1.4.0" 771 | optionator "^0.9.1" 772 | progress "^2.0.0" 773 | regexpp "^3.1.0" 774 | semver "^7.2.1" 775 | strip-ansi "^6.0.0" 776 | strip-json-comments "^3.1.0" 777 | table "^6.0.9" 778 | text-table "^0.2.0" 779 | v8-compile-cache "^2.0.3" 780 | 781 | eslint@^8.39.0, eslint@^8.40.0: 782 | version "8.40.0" 783 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4" 784 | integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ== 785 | dependencies: 786 | "@eslint-community/eslint-utils" "^4.2.0" 787 | "@eslint-community/regexpp" "^4.4.0" 788 | "@eslint/eslintrc" "^2.0.3" 789 | "@eslint/js" "8.40.0" 790 | "@humanwhocodes/config-array" "^0.11.8" 791 | "@humanwhocodes/module-importer" "^1.0.1" 792 | "@nodelib/fs.walk" "^1.2.8" 793 | ajv "^6.10.0" 794 | chalk "^4.0.0" 795 | cross-spawn "^7.0.2" 796 | debug "^4.3.2" 797 | doctrine "^3.0.0" 798 | escape-string-regexp "^4.0.0" 799 | eslint-scope "^7.2.0" 800 | eslint-visitor-keys "^3.4.1" 801 | espree "^9.5.2" 802 | esquery "^1.4.2" 803 | esutils "^2.0.2" 804 | fast-deep-equal "^3.1.3" 805 | file-entry-cache "^6.0.1" 806 | find-up "^5.0.0" 807 | glob-parent "^6.0.2" 808 | globals "^13.19.0" 809 | grapheme-splitter "^1.0.4" 810 | ignore "^5.2.0" 811 | import-fresh "^3.0.0" 812 | imurmurhash "^0.1.4" 813 | is-glob "^4.0.0" 814 | is-path-inside "^3.0.3" 815 | js-sdsl "^4.1.4" 816 | js-yaml "^4.1.0" 817 | json-stable-stringify-without-jsonify "^1.0.1" 818 | levn "^0.4.1" 819 | lodash.merge "^4.6.2" 820 | minimatch "^3.1.2" 821 | natural-compare "^1.4.0" 822 | optionator "^0.9.1" 823 | strip-ansi "^6.0.1" 824 | strip-json-comments "^3.1.0" 825 | text-table "^0.2.0" 826 | 827 | espree@^7.3.0, espree@^7.3.1: 828 | version "7.3.1" 829 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" 830 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== 831 | dependencies: 832 | acorn "^7.4.0" 833 | acorn-jsx "^5.3.1" 834 | eslint-visitor-keys "^1.3.0" 835 | 836 | espree@^9.5.2: 837 | version "9.5.2" 838 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" 839 | integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== 840 | dependencies: 841 | acorn "^8.8.0" 842 | acorn-jsx "^5.3.2" 843 | eslint-visitor-keys "^3.4.1" 844 | 845 | esprima@^4.0.0: 846 | version "4.0.1" 847 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 848 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 849 | 850 | esquery@^1.4.0, esquery@^1.4.2: 851 | version "1.5.0" 852 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 853 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 854 | dependencies: 855 | estraverse "^5.1.0" 856 | 857 | esrecurse@^4.3.0: 858 | version "4.3.0" 859 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 860 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 861 | dependencies: 862 | estraverse "^5.2.0" 863 | 864 | estraverse@^4.1.1: 865 | version "4.3.0" 866 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 867 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 868 | 869 | estraverse@^5.1.0, estraverse@^5.2.0: 870 | version "5.3.0" 871 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 872 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 873 | 874 | esutils@^2.0.2: 875 | version "2.0.3" 876 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 877 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 878 | 879 | eventemitter3@^4.0.4: 880 | version "4.0.7" 881 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 882 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 883 | 884 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 885 | version "3.1.3" 886 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 887 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 888 | 889 | fast-diff@^1.1.2: 890 | version "1.2.0" 891 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 892 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 893 | 894 | fast-glob@^3.2.9: 895 | version "3.2.12" 896 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" 897 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 898 | dependencies: 899 | "@nodelib/fs.stat" "^2.0.2" 900 | "@nodelib/fs.walk" "^1.2.3" 901 | glob-parent "^5.1.2" 902 | merge2 "^1.3.0" 903 | micromatch "^4.0.4" 904 | 905 | fast-json-stable-stringify@^2.0.0: 906 | version "2.1.0" 907 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 908 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 909 | 910 | fast-levenshtein@^2.0.6: 911 | version "2.0.6" 912 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 913 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 914 | 915 | fastq@^1.6.0: 916 | version "1.15.0" 917 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 918 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 919 | dependencies: 920 | reusify "^1.0.4" 921 | 922 | file-entry-cache@^6.0.1: 923 | version "6.0.1" 924 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 925 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 926 | dependencies: 927 | flat-cache "^3.0.4" 928 | 929 | fill-range@^7.0.1: 930 | version "7.0.1" 931 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 932 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 933 | dependencies: 934 | to-regex-range "^5.0.1" 935 | 936 | find-up@^5.0.0: 937 | version "5.0.0" 938 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 939 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 940 | dependencies: 941 | locate-path "^6.0.0" 942 | path-exists "^4.0.0" 943 | 944 | flat-cache@^3.0.4: 945 | version "3.0.4" 946 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 947 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 948 | dependencies: 949 | flatted "^3.1.0" 950 | rimraf "^3.0.2" 951 | 952 | flatted@^3.1.0: 953 | version "3.2.7" 954 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" 955 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 956 | 957 | for-each@^0.3.3: 958 | version "0.3.3" 959 | resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" 960 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== 961 | dependencies: 962 | is-callable "^1.1.3" 963 | 964 | fs.realpath@^1.0.0: 965 | version "1.0.0" 966 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 967 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 968 | 969 | function-bind@^1.1.1: 970 | version "1.1.1" 971 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 972 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 973 | 974 | function.prototype.name@^1.1.5: 975 | version "1.1.5" 976 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" 977 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== 978 | dependencies: 979 | call-bind "^1.0.2" 980 | define-properties "^1.1.3" 981 | es-abstract "^1.19.0" 982 | functions-have-names "^1.2.2" 983 | 984 | functional-red-black-tree@^1.0.1: 985 | version "1.0.1" 986 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 987 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== 988 | 989 | functions-have-names@^1.2.2, functions-have-names@^1.2.3: 990 | version "1.2.3" 991 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" 992 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 993 | 994 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: 995 | version "1.2.1" 996 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" 997 | integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== 998 | dependencies: 999 | function-bind "^1.1.1" 1000 | has "^1.0.3" 1001 | has-proto "^1.0.1" 1002 | has-symbols "^1.0.3" 1003 | 1004 | get-symbol-description@^1.0.0: 1005 | version "1.0.0" 1006 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 1007 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 1008 | dependencies: 1009 | call-bind "^1.0.2" 1010 | get-intrinsic "^1.1.1" 1011 | 1012 | glob-parent@^5.1.2: 1013 | version "5.1.2" 1014 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1015 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1016 | dependencies: 1017 | is-glob "^4.0.1" 1018 | 1019 | glob-parent@^6.0.2: 1020 | version "6.0.2" 1021 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1022 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1023 | dependencies: 1024 | is-glob "^4.0.3" 1025 | 1026 | glob@^7.1.3: 1027 | version "7.2.3" 1028 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1029 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1030 | dependencies: 1031 | fs.realpath "^1.0.0" 1032 | inflight "^1.0.4" 1033 | inherits "2" 1034 | minimatch "^3.1.1" 1035 | once "^1.3.0" 1036 | path-is-absolute "^1.0.0" 1037 | 1038 | globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: 1039 | version "13.20.0" 1040 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 1041 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 1042 | dependencies: 1043 | type-fest "^0.20.2" 1044 | 1045 | globalthis@^1.0.3: 1046 | version "1.0.3" 1047 | resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" 1048 | integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== 1049 | dependencies: 1050 | define-properties "^1.1.3" 1051 | 1052 | globby@^11.1.0: 1053 | version "11.1.0" 1054 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 1055 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 1056 | dependencies: 1057 | array-union "^2.1.0" 1058 | dir-glob "^3.0.1" 1059 | fast-glob "^3.2.9" 1060 | ignore "^5.2.0" 1061 | merge2 "^1.4.1" 1062 | slash "^3.0.0" 1063 | 1064 | gopd@^1.0.1: 1065 | version "1.0.1" 1066 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 1067 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 1068 | dependencies: 1069 | get-intrinsic "^1.1.3" 1070 | 1071 | grapheme-splitter@^1.0.4: 1072 | version "1.0.4" 1073 | resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" 1074 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== 1075 | 1076 | has-bigints@^1.0.1, has-bigints@^1.0.2: 1077 | version "1.0.2" 1078 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" 1079 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 1080 | 1081 | has-flag@^3.0.0: 1082 | version "3.0.0" 1083 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1084 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1085 | 1086 | has-flag@^4.0.0: 1087 | version "4.0.0" 1088 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1089 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1090 | 1091 | has-property-descriptors@^1.0.0: 1092 | version "1.0.0" 1093 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" 1094 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== 1095 | dependencies: 1096 | get-intrinsic "^1.1.1" 1097 | 1098 | has-proto@^1.0.1: 1099 | version "1.0.1" 1100 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" 1101 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== 1102 | 1103 | has-symbols@^1.0.2, has-symbols@^1.0.3: 1104 | version "1.0.3" 1105 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1106 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1107 | 1108 | has-tostringtag@^1.0.0: 1109 | version "1.0.0" 1110 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 1111 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 1112 | dependencies: 1113 | has-symbols "^1.0.2" 1114 | 1115 | has@^1.0.3: 1116 | version "1.0.3" 1117 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1118 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1119 | dependencies: 1120 | function-bind "^1.1.1" 1121 | 1122 | htmlparser2@^8.0.0: 1123 | version "8.0.2" 1124 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" 1125 | integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== 1126 | dependencies: 1127 | domelementtype "^2.3.0" 1128 | domhandler "^5.0.3" 1129 | domutils "^3.0.1" 1130 | entities "^4.4.0" 1131 | 1132 | ignore@^4.0.6: 1133 | version "4.0.6" 1134 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1135 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1136 | 1137 | ignore@^5.2.0: 1138 | version "5.2.4" 1139 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" 1140 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 1141 | 1142 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1143 | version "3.3.0" 1144 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1145 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1146 | dependencies: 1147 | parent-module "^1.0.0" 1148 | resolve-from "^4.0.0" 1149 | 1150 | imurmurhash@^0.1.4: 1151 | version "0.1.4" 1152 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1153 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1154 | 1155 | inflight@^1.0.4: 1156 | version "1.0.6" 1157 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1158 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1159 | dependencies: 1160 | once "^1.3.0" 1161 | wrappy "1" 1162 | 1163 | inherits@2: 1164 | version "2.0.4" 1165 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1166 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1167 | 1168 | internal-slot@^1.0.5: 1169 | version "1.0.5" 1170 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" 1171 | integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== 1172 | dependencies: 1173 | get-intrinsic "^1.2.0" 1174 | has "^1.0.3" 1175 | side-channel "^1.0.4" 1176 | 1177 | is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: 1178 | version "3.0.2" 1179 | resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" 1180 | integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== 1181 | dependencies: 1182 | call-bind "^1.0.2" 1183 | get-intrinsic "^1.2.0" 1184 | is-typed-array "^1.1.10" 1185 | 1186 | is-bigint@^1.0.1: 1187 | version "1.0.4" 1188 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 1189 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 1190 | dependencies: 1191 | has-bigints "^1.0.1" 1192 | 1193 | is-boolean-object@^1.1.0: 1194 | version "1.1.2" 1195 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 1196 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 1197 | dependencies: 1198 | call-bind "^1.0.2" 1199 | has-tostringtag "^1.0.0" 1200 | 1201 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: 1202 | version "1.2.7" 1203 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" 1204 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== 1205 | 1206 | is-core-module@^2.11.0: 1207 | version "2.12.0" 1208 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" 1209 | integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== 1210 | dependencies: 1211 | has "^1.0.3" 1212 | 1213 | is-date-object@^1.0.1: 1214 | version "1.0.5" 1215 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 1216 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 1217 | dependencies: 1218 | has-tostringtag "^1.0.0" 1219 | 1220 | is-extglob@^2.1.1: 1221 | version "2.1.1" 1222 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1223 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1224 | 1225 | is-fullwidth-code-point@^3.0.0: 1226 | version "3.0.0" 1227 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1228 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1229 | 1230 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 1231 | version "4.0.3" 1232 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1233 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1234 | dependencies: 1235 | is-extglob "^2.1.1" 1236 | 1237 | is-negative-zero@^2.0.2: 1238 | version "2.0.2" 1239 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" 1240 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 1241 | 1242 | is-number-object@^1.0.4: 1243 | version "1.0.7" 1244 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" 1245 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== 1246 | dependencies: 1247 | has-tostringtag "^1.0.0" 1248 | 1249 | is-number@^7.0.0: 1250 | version "7.0.0" 1251 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1252 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1253 | 1254 | is-path-inside@^3.0.3: 1255 | version "3.0.3" 1256 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1257 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1258 | 1259 | is-plain-object@^5.0.0: 1260 | version "5.0.0" 1261 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" 1262 | integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 1263 | 1264 | is-regex@^1.1.4: 1265 | version "1.1.4" 1266 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 1267 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 1268 | dependencies: 1269 | call-bind "^1.0.2" 1270 | has-tostringtag "^1.0.0" 1271 | 1272 | is-shared-array-buffer@^1.0.2: 1273 | version "1.0.2" 1274 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" 1275 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== 1276 | dependencies: 1277 | call-bind "^1.0.2" 1278 | 1279 | is-string@^1.0.5, is-string@^1.0.7: 1280 | version "1.0.7" 1281 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 1282 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 1283 | dependencies: 1284 | has-tostringtag "^1.0.0" 1285 | 1286 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1287 | version "1.0.4" 1288 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 1289 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 1290 | dependencies: 1291 | has-symbols "^1.0.2" 1292 | 1293 | is-typed-array@^1.1.10, is-typed-array@^1.1.9: 1294 | version "1.1.10" 1295 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" 1296 | integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== 1297 | dependencies: 1298 | available-typed-arrays "^1.0.5" 1299 | call-bind "^1.0.2" 1300 | for-each "^0.3.3" 1301 | gopd "^1.0.1" 1302 | has-tostringtag "^1.0.0" 1303 | 1304 | is-weakref@^1.0.2: 1305 | version "1.0.2" 1306 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" 1307 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 1308 | dependencies: 1309 | call-bind "^1.0.2" 1310 | 1311 | isexe@^2.0.0: 1312 | version "2.0.0" 1313 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1314 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1315 | 1316 | js-sdsl@^4.1.4: 1317 | version "4.4.0" 1318 | resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" 1319 | integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== 1320 | 1321 | js-tokens@^4.0.0: 1322 | version "4.0.0" 1323 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1324 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1325 | 1326 | js-yaml@^3.13.1: 1327 | version "3.14.1" 1328 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1329 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1330 | dependencies: 1331 | argparse "^1.0.7" 1332 | esprima "^4.0.0" 1333 | 1334 | js-yaml@^4.1.0: 1335 | version "4.1.0" 1336 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1337 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1338 | dependencies: 1339 | argparse "^2.0.1" 1340 | 1341 | json-schema-traverse@^0.4.1: 1342 | version "0.4.1" 1343 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1344 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1345 | 1346 | json-schema-traverse@^1.0.0: 1347 | version "1.0.0" 1348 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1349 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1350 | 1351 | json-stable-stringify-without-jsonify@^1.0.1: 1352 | version "1.0.1" 1353 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1354 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1355 | 1356 | json5@^1.0.2: 1357 | version "1.0.2" 1358 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 1359 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 1360 | dependencies: 1361 | minimist "^1.2.0" 1362 | 1363 | levn@^0.4.1: 1364 | version "0.4.1" 1365 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1366 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1367 | dependencies: 1368 | prelude-ls "^1.2.1" 1369 | type-check "~0.4.0" 1370 | 1371 | locate-path@^6.0.0: 1372 | version "6.0.0" 1373 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1374 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1375 | dependencies: 1376 | p-locate "^5.0.0" 1377 | 1378 | lodash.merge@^4.6.2: 1379 | version "4.6.2" 1380 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1381 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1382 | 1383 | lodash.truncate@^4.4.2: 1384 | version "4.4.2" 1385 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 1386 | integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== 1387 | 1388 | lodash@^4.17.21: 1389 | version "4.17.21" 1390 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1391 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1392 | 1393 | lru-cache@^6.0.0: 1394 | version "6.0.0" 1395 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1396 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1397 | dependencies: 1398 | yallist "^4.0.0" 1399 | 1400 | merge2@^1.3.0, merge2@^1.4.1: 1401 | version "1.4.1" 1402 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1403 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1404 | 1405 | micromatch@^4.0.4: 1406 | version "4.0.5" 1407 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1408 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1409 | dependencies: 1410 | braces "^3.0.2" 1411 | picomatch "^2.3.1" 1412 | 1413 | minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 1414 | version "3.1.2" 1415 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1416 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1417 | dependencies: 1418 | brace-expansion "^1.1.7" 1419 | 1420 | minimist@^1.2.0, minimist@^1.2.6: 1421 | version "1.2.8" 1422 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 1423 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1424 | 1425 | ms@2.1.2: 1426 | version "2.1.2" 1427 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1428 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1429 | 1430 | ms@^2.1.1: 1431 | version "2.1.3" 1432 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1433 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1434 | 1435 | nanoid@^3.3.6: 1436 | version "3.3.6" 1437 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" 1438 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== 1439 | 1440 | natural-compare-lite@^1.4.0: 1441 | version "1.4.0" 1442 | resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" 1443 | integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== 1444 | 1445 | natural-compare@^1.4.0: 1446 | version "1.4.0" 1447 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1448 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1449 | 1450 | object-inspect@^1.12.3, object-inspect@^1.9.0: 1451 | version "1.12.3" 1452 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" 1453 | integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== 1454 | 1455 | object-keys@^1.1.1: 1456 | version "1.1.1" 1457 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1458 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1459 | 1460 | object.assign@^4.1.4: 1461 | version "4.1.4" 1462 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" 1463 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== 1464 | dependencies: 1465 | call-bind "^1.0.2" 1466 | define-properties "^1.1.4" 1467 | has-symbols "^1.0.3" 1468 | object-keys "^1.1.1" 1469 | 1470 | object.values@^1.1.6: 1471 | version "1.1.6" 1472 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" 1473 | integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== 1474 | dependencies: 1475 | call-bind "^1.0.2" 1476 | define-properties "^1.1.4" 1477 | es-abstract "^1.20.4" 1478 | 1479 | once@^1.3.0: 1480 | version "1.4.0" 1481 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1482 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1483 | dependencies: 1484 | wrappy "1" 1485 | 1486 | optionator@^0.9.1: 1487 | version "0.9.1" 1488 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1489 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1490 | dependencies: 1491 | deep-is "^0.1.3" 1492 | fast-levenshtein "^2.0.6" 1493 | levn "^0.4.1" 1494 | prelude-ls "^1.2.1" 1495 | type-check "^0.4.0" 1496 | word-wrap "^1.2.3" 1497 | 1498 | p-finally@^1.0.0: 1499 | version "1.0.0" 1500 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1501 | integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== 1502 | 1503 | p-limit@^3.0.2: 1504 | version "3.1.0" 1505 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1506 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1507 | dependencies: 1508 | yocto-queue "^0.1.0" 1509 | 1510 | p-locate@^5.0.0: 1511 | version "5.0.0" 1512 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1513 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1514 | dependencies: 1515 | p-limit "^3.0.2" 1516 | 1517 | p-queue@^6.6.2: 1518 | version "6.6.2" 1519 | resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" 1520 | integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== 1521 | dependencies: 1522 | eventemitter3 "^4.0.4" 1523 | p-timeout "^3.2.0" 1524 | 1525 | p-retry@^4.6.2: 1526 | version "4.6.2" 1527 | resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" 1528 | integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== 1529 | dependencies: 1530 | "@types/retry" "0.12.0" 1531 | retry "^0.13.1" 1532 | 1533 | p-timeout@^3.2.0: 1534 | version "3.2.0" 1535 | resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" 1536 | integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 1537 | dependencies: 1538 | p-finally "^1.0.0" 1539 | 1540 | parent-module@^1.0.0: 1541 | version "1.0.1" 1542 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1543 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1544 | dependencies: 1545 | callsites "^3.0.0" 1546 | 1547 | parse-srcset@^1.0.2: 1548 | version "1.0.2" 1549 | resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" 1550 | integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== 1551 | 1552 | path-exists@^4.0.0: 1553 | version "4.0.0" 1554 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1555 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1556 | 1557 | path-is-absolute@^1.0.0: 1558 | version "1.0.1" 1559 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1560 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1561 | 1562 | path-key@^3.1.0: 1563 | version "3.1.1" 1564 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1565 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1566 | 1567 | path-parse@^1.0.7: 1568 | version "1.0.7" 1569 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1570 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1571 | 1572 | path-type@^4.0.0: 1573 | version "4.0.0" 1574 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1575 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1576 | 1577 | picocolors@^1.0.0: 1578 | version "1.0.0" 1579 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1580 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1581 | 1582 | picomatch@^2.3.1: 1583 | version "2.3.1" 1584 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1585 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1586 | 1587 | postcss@^8.3.11: 1588 | version "8.4.23" 1589 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" 1590 | integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== 1591 | dependencies: 1592 | nanoid "^3.3.6" 1593 | picocolors "^1.0.0" 1594 | source-map-js "^1.0.2" 1595 | 1596 | prelude-ls@^1.2.1: 1597 | version "1.2.1" 1598 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1599 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1600 | 1601 | prettier-linter-helpers@^1.0.0: 1602 | version "1.0.0" 1603 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" 1604 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 1605 | dependencies: 1606 | fast-diff "^1.1.2" 1607 | 1608 | prettier@^2.5.1: 1609 | version "2.8.8" 1610 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" 1611 | integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== 1612 | 1613 | progress@^2.0.0: 1614 | version "2.0.3" 1615 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1616 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1617 | 1618 | punycode@^2.1.0: 1619 | version "2.3.0" 1620 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 1621 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 1622 | 1623 | queue-microtask@^1.2.2: 1624 | version "1.2.3" 1625 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1626 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1627 | 1628 | reflect-metadata@^0.1.13: 1629 | version "0.1.13" 1630 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" 1631 | integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== 1632 | 1633 | regexp.prototype.flags@^1.4.3: 1634 | version "1.5.0" 1635 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" 1636 | integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== 1637 | dependencies: 1638 | call-bind "^1.0.2" 1639 | define-properties "^1.2.0" 1640 | functions-have-names "^1.2.3" 1641 | 1642 | regexpp@^3.1.0: 1643 | version "3.2.0" 1644 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 1645 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 1646 | 1647 | require-from-string@^2.0.2: 1648 | version "2.0.2" 1649 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1650 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1651 | 1652 | resolve-from@^4.0.0: 1653 | version "4.0.0" 1654 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1655 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1656 | 1657 | resolve@^1.22.1: 1658 | version "1.22.2" 1659 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" 1660 | integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== 1661 | dependencies: 1662 | is-core-module "^2.11.0" 1663 | path-parse "^1.0.7" 1664 | supports-preserve-symlinks-flag "^1.0.0" 1665 | 1666 | retry@^0.13.1: 1667 | version "0.13.1" 1668 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" 1669 | integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== 1670 | 1671 | reusify@^1.0.4: 1672 | version "1.0.4" 1673 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1674 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1675 | 1676 | rimraf@^3.0.2: 1677 | version "3.0.2" 1678 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1679 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1680 | dependencies: 1681 | glob "^7.1.3" 1682 | 1683 | run-parallel@^1.1.9: 1684 | version "1.2.0" 1685 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1686 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1687 | dependencies: 1688 | queue-microtask "^1.2.2" 1689 | 1690 | safe-regex-test@^1.0.0: 1691 | version "1.0.0" 1692 | resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" 1693 | integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== 1694 | dependencies: 1695 | call-bind "^1.0.2" 1696 | get-intrinsic "^1.1.3" 1697 | is-regex "^1.1.4" 1698 | 1699 | sanitize-html@^2.10.0: 1700 | version "2.10.0" 1701 | resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.10.0.tgz#74d28848dfcf72c39693139131895c78900ab452" 1702 | integrity sha512-JqdovUd81dG4k87vZt6uA6YhDfWkUGruUu/aPmXLxXi45gZExnt9Bnw/qeQU8oGf82vPyaE0vO4aH0PbobB9JQ== 1703 | dependencies: 1704 | deepmerge "^4.2.2" 1705 | escape-string-regexp "^4.0.0" 1706 | htmlparser2 "^8.0.0" 1707 | is-plain-object "^5.0.0" 1708 | parse-srcset "^1.0.2" 1709 | postcss "^8.3.11" 1710 | 1711 | semver@^6.3.0: 1712 | version "6.3.0" 1713 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1714 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1715 | 1716 | semver@^7.2.1, semver@^7.3.7: 1717 | version "7.5.1" 1718 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" 1719 | integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== 1720 | dependencies: 1721 | lru-cache "^6.0.0" 1722 | 1723 | shebang-command@^2.0.0: 1724 | version "2.0.0" 1725 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1726 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1727 | dependencies: 1728 | shebang-regex "^3.0.0" 1729 | 1730 | shebang-regex@^3.0.0: 1731 | version "3.0.0" 1732 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1733 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1734 | 1735 | side-channel@^1.0.4: 1736 | version "1.0.4" 1737 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1738 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1739 | dependencies: 1740 | call-bind "^1.0.0" 1741 | get-intrinsic "^1.0.2" 1742 | object-inspect "^1.9.0" 1743 | 1744 | slash@^3.0.0: 1745 | version "3.0.0" 1746 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1747 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1748 | 1749 | slice-ansi@^4.0.0: 1750 | version "4.0.0" 1751 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 1752 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 1753 | dependencies: 1754 | ansi-styles "^4.0.0" 1755 | astral-regex "^2.0.0" 1756 | is-fullwidth-code-point "^3.0.0" 1757 | 1758 | source-map-js@^1.0.2: 1759 | version "1.0.2" 1760 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1761 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1762 | 1763 | sprintf-js@~1.0.2: 1764 | version "1.0.3" 1765 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1766 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== 1767 | 1768 | string-width@^4.2.3: 1769 | version "4.2.3" 1770 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1771 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1772 | dependencies: 1773 | emoji-regex "^8.0.0" 1774 | is-fullwidth-code-point "^3.0.0" 1775 | strip-ansi "^6.0.1" 1776 | 1777 | string.prototype.trim@^1.2.7: 1778 | version "1.2.7" 1779 | resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" 1780 | integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== 1781 | dependencies: 1782 | call-bind "^1.0.2" 1783 | define-properties "^1.1.4" 1784 | es-abstract "^1.20.4" 1785 | 1786 | string.prototype.trimend@^1.0.6: 1787 | version "1.0.6" 1788 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" 1789 | integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== 1790 | dependencies: 1791 | call-bind "^1.0.2" 1792 | define-properties "^1.1.4" 1793 | es-abstract "^1.20.4" 1794 | 1795 | string.prototype.trimstart@^1.0.6: 1796 | version "1.0.6" 1797 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" 1798 | integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== 1799 | dependencies: 1800 | call-bind "^1.0.2" 1801 | define-properties "^1.1.4" 1802 | es-abstract "^1.20.4" 1803 | 1804 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1805 | version "6.0.1" 1806 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1807 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1808 | dependencies: 1809 | ansi-regex "^5.0.1" 1810 | 1811 | strip-bom@^3.0.0: 1812 | version "3.0.0" 1813 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1814 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 1815 | 1816 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1817 | version "3.1.1" 1818 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1819 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1820 | 1821 | supports-color@^5.3.0: 1822 | version "5.5.0" 1823 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1824 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1825 | dependencies: 1826 | has-flag "^3.0.0" 1827 | 1828 | supports-color@^7.1.0: 1829 | version "7.2.0" 1830 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1831 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1832 | dependencies: 1833 | has-flag "^4.0.0" 1834 | 1835 | supports-preserve-symlinks-flag@^1.0.0: 1836 | version "1.0.0" 1837 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1838 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1839 | 1840 | table@^6.0.9: 1841 | version "6.8.1" 1842 | resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" 1843 | integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== 1844 | dependencies: 1845 | ajv "^8.0.1" 1846 | lodash.truncate "^4.4.2" 1847 | slice-ansi "^4.0.0" 1848 | string-width "^4.2.3" 1849 | strip-ansi "^6.0.1" 1850 | 1851 | text-table@^0.2.0: 1852 | version "0.2.0" 1853 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1854 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 1855 | 1856 | to-regex-range@^5.0.1: 1857 | version "5.0.1" 1858 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1859 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1860 | dependencies: 1861 | is-number "^7.0.0" 1862 | 1863 | tsconfig-paths@^3.14.1: 1864 | version "3.14.2" 1865 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" 1866 | integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== 1867 | dependencies: 1868 | "@types/json5" "^0.0.29" 1869 | json5 "^1.0.2" 1870 | minimist "^1.2.6" 1871 | strip-bom "^3.0.0" 1872 | 1873 | tslib@^1.8.1: 1874 | version "1.14.1" 1875 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1876 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1877 | 1878 | tsutils@^3.21.0: 1879 | version "3.21.0" 1880 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 1881 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 1882 | dependencies: 1883 | tslib "^1.8.1" 1884 | 1885 | turbo-darwin-64@1.9.4: 1886 | version "1.9.4" 1887 | resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.9.4.tgz#3f40cba2dcc13011f4c51101ba03f4c1aa511daf" 1888 | integrity sha512-kCmDmxyUWWI+BstTZQKNM87UbNx40C0ZHUTFqs9tmeH7d5+gA2QhqrSoBuwQYw7YYNLpbkqu1ObbppsUlIFPdQ== 1889 | 1890 | turbo-darwin-arm64@1.9.4: 1891 | version "1.9.4" 1892 | resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.9.4.tgz#257e67438033d1bfb75650b5ca8664d0a00e0ccb" 1893 | integrity sha512-Of64jMEaDDHx0dzU7RwdOuh1lP021vtQun9wmEHhT0Hk/TQF+kDCywoHcY7R5nlSRcssFjysVyhCeZW6CkWrrA== 1894 | 1895 | turbo-linux-64@1.9.4: 1896 | version "1.9.4" 1897 | resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.9.4.tgz#a4d7a06b8b786144d3c967a8f647561a71d8057a" 1898 | integrity sha512-kajvUnXlUNtgVzLW3Y/RoHrC64G+G0Ky/o1F+oP6QK/T85H8NwNHXq2F6hyIrZPNGbKpPgpetuQ1waIibxJ0rA== 1899 | 1900 | turbo-linux-arm64@1.9.4: 1901 | version "1.9.4" 1902 | resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.9.4.tgz#5426bd72ef2a80cad390ecf4220779824faab41f" 1903 | integrity sha512-11P9Y8MoimqUzib3SU3md4g1loLF0FRHpYCbPzUTWPT3beOcdM2nop2u/yFHyBnbSxz1rTWczRJPnNoAki0B/Q== 1904 | 1905 | turbo-windows-64@1.9.4: 1906 | version "1.9.4" 1907 | resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.9.4.tgz#b6458e3f715f0b0ab0b1bf1ded3ed6f2a8e0f1f9" 1908 | integrity sha512-2tFcFhuqs1c1DGFAk2wjU0TXrOXKoPdma9vxrTVdwvtz5Nc8XPF8RNW+1jbmRjpumGUkXou6Pe973GSvPjvD5w== 1909 | 1910 | turbo-windows-arm64@1.9.4: 1911 | version "1.9.4" 1912 | resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.9.4.tgz#d4959a8b81dc5c3561b8e22355ab74b05d47f803" 1913 | integrity sha512-wJfEwUyWXxn6VKD2Vbycke6cm99gJ0llkr9gUnbR06eaRu1TiLY24FcFqN95/wftp0n5nne7b6K7Wz1TLh1fJQ== 1914 | 1915 | turbo@^1.9.3: 1916 | version "1.9.4" 1917 | resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.9.4.tgz#d9a3e350767dc894a5f5b427144d20d435c22032" 1918 | integrity sha512-PqhlMCmu6sOqcVswt1tYL0TV/O0uQ8kUZWfmlEl0EHPusc2R3nzg7KVXrZbXTHXzQH5HE2oJm9iUI0mYz31i7Q== 1919 | optionalDependencies: 1920 | turbo-darwin-64 "1.9.4" 1921 | turbo-darwin-arm64 "1.9.4" 1922 | turbo-linux-64 "1.9.4" 1923 | turbo-linux-arm64 "1.9.4" 1924 | turbo-windows-64 "1.9.4" 1925 | turbo-windows-arm64 "1.9.4" 1926 | 1927 | type-check@^0.4.0, type-check@~0.4.0: 1928 | version "0.4.0" 1929 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1930 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1931 | dependencies: 1932 | prelude-ls "^1.2.1" 1933 | 1934 | type-fest@^0.20.2: 1935 | version "0.20.2" 1936 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1937 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1938 | 1939 | type-fest@^3.10.0: 1940 | version "3.10.0" 1941 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.10.0.tgz#d75f17a22be8816aea6315ab2739fe1c0c211863" 1942 | integrity sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A== 1943 | 1944 | typed-array-length@^1.0.4: 1945 | version "1.0.4" 1946 | resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" 1947 | integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== 1948 | dependencies: 1949 | call-bind "^1.0.2" 1950 | for-each "^0.3.3" 1951 | is-typed-array "^1.1.9" 1952 | 1953 | typescript@^5.0.4: 1954 | version "5.0.4" 1955 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" 1956 | integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== 1957 | 1958 | unbox-primitive@^1.0.2: 1959 | version "1.0.2" 1960 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" 1961 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== 1962 | dependencies: 1963 | call-bind "^1.0.2" 1964 | has-bigints "^1.0.2" 1965 | has-symbols "^1.0.3" 1966 | which-boxed-primitive "^1.0.2" 1967 | 1968 | uri-js@^4.2.2: 1969 | version "4.4.1" 1970 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1971 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1972 | dependencies: 1973 | punycode "^2.1.0" 1974 | 1975 | v8-compile-cache@^2.0.3: 1976 | version "2.3.0" 1977 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1978 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1979 | 1980 | which-boxed-primitive@^1.0.2: 1981 | version "1.0.2" 1982 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 1983 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 1984 | dependencies: 1985 | is-bigint "^1.0.1" 1986 | is-boolean-object "^1.1.0" 1987 | is-number-object "^1.0.4" 1988 | is-string "^1.0.5" 1989 | is-symbol "^1.0.3" 1990 | 1991 | which-typed-array@^1.1.9: 1992 | version "1.1.9" 1993 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" 1994 | integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== 1995 | dependencies: 1996 | available-typed-arrays "^1.0.5" 1997 | call-bind "^1.0.2" 1998 | for-each "^0.3.3" 1999 | gopd "^1.0.1" 2000 | has-tostringtag "^1.0.0" 2001 | is-typed-array "^1.1.10" 2002 | 2003 | which@^2.0.1: 2004 | version "2.0.2" 2005 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2006 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2007 | dependencies: 2008 | isexe "^2.0.0" 2009 | 2010 | word-wrap@^1.2.3: 2011 | version "1.2.3" 2012 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2013 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 2014 | 2015 | wrappy@1: 2016 | version "1.0.2" 2017 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2018 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2019 | 2020 | yallist@^4.0.0: 2021 | version "4.0.0" 2022 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2023 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2024 | 2025 | yocto-queue@^0.1.0: 2026 | version "0.1.0" 2027 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2028 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2029 | --------------------------------------------------------------------------------