From 6470a20e47c3577fcdafedd175720aba08fb5d3c Mon Sep 17 00:00:00 2001 From: Zac Rosenbauer Date: Wed, 12 Jul 2023 16:04:47 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=83decide=20your=20own=20tempo=20-=20i?= =?UTF-8?q?nitial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 6 + .eslintrc.js | 16 + .github/dependabot.yaml | 6 + .github/release-drafter.yml | 44 + .github/workflows/ci.yaml | 31 + .github/workflows/npm-publish.yaml | 38 + .github/workflows/release-notes.yaml | 19 + .gitignore | 130 + .prettierignore | 4 + .prettierrc.json | 9 + .vscode/settings.json | 26 + LICENSE | 21 + README.md | 91 + examples/docs/basic.md | 25 + examples/docs/code.md | 15 + examples/docs/table.md | 11 + examples/index.ts | 38 + examples/lib/basic.ts | 29 + examples/lib/code.ts | 20 + examples/lib/table.ts | 17 + jest.config.ts | 17 + logo.png | Bin 0 -> 52095 bytes package-lock.json | 9595 +++++++++++++++++++ package.json | 32 + src/index.ts | 3 + src/lib/Document.ts | 190 + src/lib/Text.ts | 52 + src/lib/__tests__/Document.test.ts | 0 src/lib/__tests__/Text.test.ts | 98 + src/lib/markdown/__tests__/markdown.test.ts | 112 + src/lib/markdown/codeBlock.ts | 88 + src/lib/markdown/emoji.ts | 9130 ++++++++++++++++++ src/lib/markdown/index.ts | 1 + src/lib/markdown/markdown.ts | 144 + tsconfig.json | 30 + tsconfig.test.json | 4 + 36 files changed, 20092 insertions(+) create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .github/dependabot.yaml create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/npm-publish.yaml create mode 100644 .github/workflows/release-notes.yaml create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 examples/docs/basic.md create mode 100644 examples/docs/code.md create mode 100644 examples/docs/table.md create mode 100644 examples/index.ts create mode 100644 examples/lib/basic.ts create mode 100644 examples/lib/code.ts create mode 100644 examples/lib/table.ts create mode 100644 jest.config.ts create mode 100644 logo.png create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/index.ts create mode 100644 src/lib/Document.ts create mode 100644 src/lib/Text.ts create mode 100644 src/lib/__tests__/Document.test.ts create mode 100644 src/lib/__tests__/Text.test.ts create mode 100644 src/lib/markdown/__tests__/markdown.test.ts create mode 100644 src/lib/markdown/codeBlock.ts create mode 100644 src/lib/markdown/emoji.ts create mode 100644 src/lib/markdown/index.ts create mode 100644 src/lib/markdown/markdown.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.test.json diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..f00c859 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,6 @@ +# don't ever lint node_modules +node_modules +# don't lint build output (make sure it's set to your correct build folder name) +dist +# don't lint nyc coverage output +coverage \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..9d77c85 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,16 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'eslint-config-semistandard' + ], + ignorePatterns: ['src/**/__tests__/'], + rules: { + '@typescript-eslint/no-unused-vars': 0, + 'space-before-function-paren': 0 + } +}; diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 0000000..db9ba41 --- /dev/null +++ b/.github/dependabot.yaml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: 'npm' + directory: '/' + schedule: + interval: 'weekly' diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..72488e9 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,44 @@ +name-template: 'v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' +categories: + - title: ':bangbang: Breaking Changes' + labels: + - 'major' + - title: '๐Ÿš€ Features' + labels: + - 'enhancement' + - title: '๐Ÿ”ฅ Hot Fixes' + labels: + - 'hotfix' + - title: '๐Ÿ› Bug Fixes' + labels: + - 'bugfix' + - title: '๐Ÿงฐ Maintenance' + labels: + - 'maintenance' + - 'chore' + - 'maintain' + - title: '๐Ÿ‘ฎ Security' + label: 'security' + - title: '๐Ÿค– Dependabot' + label: 'dependencies' +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +version-resolver: + major: + labels: + - 'major' + minor: + labels: + - 'minor' + patch: + labels: + - 'patch' + default: minor +template: | + ## Changes + + $CHANGES + + ## Contributors + + $CONTRIBUTORS diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..700508f --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,31 @@ +name: 'CI' + +on: + pull_request: + branches: + - main + push: + branches: + - main + +jobs: + lintAndTest: + name: Lint & Test + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v1 + - name: Use Node.js v18 + uses: actions/setup-node@v1 + with: + node-version: 18 + - name: Install Packages + run: npm install + - name: Format + run: npm run format:check + - name: Lint + run: npm run lint:check + - name: Type Check + run: npm run type:check + - name: Test + run: npm test --ci diff --git a/.github/workflows/npm-publish.yaml b/.github/workflows/npm-publish.yaml new file mode 100644 index 0000000..295a593 --- /dev/null +++ b/.github/workflows/npm-publish.yaml @@ -0,0 +1,38 @@ +name: 'Publish to npm' + +on: + release: + types: [created, published] + +jobs: + publish: + name: Publish + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v1 + - name: Use Node.js v18 + uses: actions/setup-node@v1 + with: + node-version: 18 + registry-url: 'https://registry.npmjs.org' + - name: Check if package.json Version matches tag + uses: actions/github-script@v6 + env: + TAG: ${{ github.ref_name }} + with: + script: | + const fs = require('fs') + const packageJson = JSON.parse(fs.readFileSync('${{ github.workspace }}/package.json')) + const pjv = packageJson.version.split('.')[0] + const tagVersion = process.env.TAG.replace('v', '').split('.')[0] + + if (pjv !== tagVersion) { + throw new Error('The tagged release doesn\'t match the package.json version, please update, delete the tag & release and try again.') + } + - name: Install Packages + run: npm ci + - name: Publish + run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH }} diff --git a/.github/workflows/release-notes.yaml b/.github/workflows/release-notes.yaml new file mode 100644 index 0000000..b34726a --- /dev/null +++ b/.github/workflows/release-notes.yaml @@ -0,0 +1,19 @@ +name: 'Release Notes (Drafter)' + +on: + workflow_dispatch: {} + push: + branches: + - main + +concurrency: + group: drafter-${{ github.ref }} + cancel-in-progress: true + +jobs: + update_draft_release: + runs-on: ubuntu-latest + steps: + - uses: toolmantim/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6bba59 --- /dev/null +++ b/.gitignore @@ -0,0 +1,130 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7020dd6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +dist/ +node_modules/ +docs/ +*.md \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..2bf39c2 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid" +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..376922c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,26 @@ +{ + "cSpell.words": [ + "Flaticon", + "Freepik" + ], + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#cdf2e2", + "activityBar.background": "#cdf2e2", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#b681de", + "activityBarBadge.foreground": "#15202b", + "commandCenter.border": "#15202b99", + "sash.hoverBorder": "#cdf2e2", + "statusBar.background": "#a4e8ca", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#7bdeb2", + "statusBarItem.remoteBackground": "#a4e8ca", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#a4e8ca", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#a4e8ca99", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.color": "#a4e8ca" +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c01e9c6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Joggr + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..06acf84 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +
+

+ +

+
+
+ "Running gives freedom. When you run you can determine your own tempo. You can choose your own course and think whatever you want. Nobody tells you what to do." - Nina Kuscsik +
+
+ +
+ +

+ + CodeQL + + + Publish to npm + + + CI + +
+ + JS Semi-standard Style + + + Prettier Style + +

+ +## Overview + +Library used to programmatically build markdown documents, with a heavy tilt toward [GitHub Flavored Markdown (GFM)](https://github.github.com/gfm/). + +## Getting Started + +Install the library and you can begin to use it in your application(s). + +_This is a Github Package and your application must support installing internal Github packages before you can use this package._ + +**npm** + +```shell +npm install @joggrdocs/tempo +``` + +**yarn** + +```shell +yarn add @joggrdocs/tempo +``` + +## Usage + +```typescript +import fs from 'node:fs/promises'; +import tempo from '@joggrdocs/tempo'; + +const result = tempo() + .h1('Hello World') + .paragraph('Some things') + .paragraph((txt) => + txt + .text('A sentence with') + .bold('bolded words') + .text('and') + .italic('italicized words') + .text('.') + .build() + ) + .h2((txt) => + txt + .text('A') + .italic('table') + ) + .table([ + ['name', 'email'], + ['Zac', 'zac@acmecorp.com'] + ]) + .toString(); + +fs.writeFile('myFile.md', result) + .then(() => { + console.log('DONE'); + }); +``` + +### Credits + +- Logo by [Time management icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/time-management) diff --git a/examples/docs/basic.md b/examples/docs/basic.md new file mode 100644 index 0000000..cfda656 --- /dev/null +++ b/examples/docs/basic.md @@ -0,0 +1,25 @@ +# Hello World + +This is a paragraph + +## This is a heading with **bold text** + +**This is bold text** + +This is inline text _with italic text_ + +Foobar is a thing **that is bold** + +## Lists + +This is a list + +- Item 1 +- Item 2 +- Item 3 + +This is a numbered list + +1. Item 1 +2. Item 2 +3. Item 3 \ No newline at end of file diff --git a/examples/docs/code.md b/examples/docs/code.md new file mode 100644 index 0000000..16e26d9 --- /dev/null +++ b/examples/docs/code.md @@ -0,0 +1,15 @@ +# Code Examples + +This includes examples of code blocks and `inline code` . + +## This is a heading with `code` + +```javascript +import foobar from 'foobar'; + +function run() { + console.log("Hello World"); +} + +export default run; +``` \ No newline at end of file diff --git a/examples/docs/table.md b/examples/docs/table.md new file mode 100644 index 0000000..e99cb26 --- /dev/null +++ b/examples/docs/table.md @@ -0,0 +1,11 @@ +# Table Examples + +Includes example of tables. + +## Example Table + +| Name | Age | Gender | +| ---- | --- | ------ | +| John Doe | 30 | Male | +| Jane Doe | 25 | Female | +| Foo Bar | 40 | Male | \ No newline at end of file diff --git a/examples/index.ts b/examples/index.ts new file mode 100644 index 0000000..b59c566 --- /dev/null +++ b/examples/index.ts @@ -0,0 +1,38 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; + +import exampleBasic from './lib/basic'; +import exampleCode from './lib/code'; +import exampleTable from './lib/table'; + +/* +|---------------------------------- +| Examples +|---------------------------------- +| +| Builds the example markdown files that demonstrate the usage of the Tempo. +| +| To run this file, run the following command: +| `npm run build:examples` +| +*/ +(() => { + console.log('Building examples...'); + + const basicResult = exampleBasic(); + const codeResult = exampleCode(); + const tableResult = exampleTable(); + + const examplesDir = path.join(__dirname, '..', 'examples', 'docs'); + const basicFile = path.join(examplesDir, 'basic.md'); + const codeFile = path.join(examplesDir, 'code.md'); + const tableFile = path.join(examplesDir, 'table.md'); + + Promise.all([ + fs.writeFile(basicFile, basicResult), + fs.writeFile(codeFile, codeResult), + fs.writeFile(tableFile, tableResult) + ]); + + console.log('Examples built successfully.'); +})(); diff --git a/examples/lib/basic.ts b/examples/lib/basic.ts new file mode 100644 index 0000000..ed854cb --- /dev/null +++ b/examples/lib/basic.ts @@ -0,0 +1,29 @@ +import tempo from '../../src'; + +function run() { + return tempo() + .h1('Hello World') + .paragraph('This is a paragraph') + .h2(text => text.text('This is a heading with ').bold('bold text')) + .paragraph(text => text.bold('This is bold text')) + .paragraph( + text => `This is inline text ${text.italic('with italic text')}` + ) + .paragraph(text => text.text('Foobar is a thing').bold('that is bold')) + .h2('Lists') + .paragraph('This is a list') + .bulletList([ + 'Item 1', + 'Item 2', + 'Item 3' + ]) + .paragraph('This is a numbered list') + .numberList([ + 'Item 1', + 'Item 2', + 'Item 3' + ]) + .toString(); +} + +export default run; diff --git a/examples/lib/code.ts b/examples/lib/code.ts new file mode 100644 index 0000000..c48727d --- /dev/null +++ b/examples/lib/code.ts @@ -0,0 +1,20 @@ +import tempo from '../../src'; + +function run() { + return tempo() + .h1('Code Examples') + .paragraph(txt => txt.text('This includes examples of code blocks and').code('inline code').text('.')) + .h2(txt => txt.text('This is a heading with ').code('code')) + .codeBlock(` +import foobar from 'foobar'; + +function run() { + console.log("Hello World"); +} + +export default run; + `.trim(), 'javascript') + .toString(); +} + +export default run; diff --git a/examples/lib/table.ts b/examples/lib/table.ts new file mode 100644 index 0000000..ff0b44d --- /dev/null +++ b/examples/lib/table.ts @@ -0,0 +1,17 @@ +import tempo from '../../src'; + +function run() { + return tempo() + .h1('Table Examples') + .paragraph('Includes example of tables.') + .h2('Example Table') + .table([ + ['Name', 'Age', 'Gender'], + ['John Doe', '30', 'Male'], + ['Jane Doe', '25', 'Female'], + ['Foo Bar', '40', 'Male'] + ]) + .toString(); +} + +export default run; diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..3c0d01e --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,17 @@ +import { JestConfigWithTsJest } from 'ts-jest'; + +const config: JestConfigWithTsJest = { + roots: ['/src'], + testMatch: ['**/__tests__/**/*.test.ts'], + testPathIgnorePatterns: ['dist', '/node_modules/'], + transform: { + '^.+\\.(ts|tsx)$': [ + 'ts-jest', + { + tsconfig: 'tsconfig.test.json' + } + ] + } +}; + +export default config; diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee2183498e23458117fc93da6cf72f364dfae9b GIT binary patch literal 52095 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.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "@nicolo-ribaudo/semver-v6": "^6.3.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-validator-option": "^7.22.5", + "@nicolo-ribaudo/semver-v6": "^6.3.3", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/reporters": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-resolve-dependencies": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "jest-watcher": "^29.6.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.6.1", + "jest-snapshot": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/types": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/node": { + "version": "20.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", + "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/type-utils": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz", + "integrity": "sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", + "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", + "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", + "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", + "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", + "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", + "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.61.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.6.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "peer": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001513", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "peer": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.454", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "peer": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "peer": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "peer": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-semistandard": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-17.0.0.tgz", + "integrity": "sha512-tLi0JYmfiiJgtmRhoES55tENatR7y/5aXOh6cBeW+qjzl1+WwyV0arDqR65XN3/xrPZt+/1EG+xNLknV/0jWsQ==", + "dev": true, + "peerDependencies": { + "eslint": "^8.13.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "peer": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "peer": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "peer": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "peer": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "peer": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", + "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.6.1", + "@types/node": "*", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "peer": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "peer": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "peer": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "peer": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "peer": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "peer": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "peer": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.6.1", + "@jest/types": "^29.6.1", + "import-local": "^3.0.2", + "jest-cli": "^29.6.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.6.1", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.6.1", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.6.1", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.6.1", + "jest-environment-node": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.6.1", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/environment": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-leak-detector": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-resolve": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-util": "^29.6.1", + "jest-watcher": "^29.6.1", + "jest-worker": "^29.6.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/globals": "^29.6.1", + "@jest/source-map": "^29.6.0", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.6.1", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.6.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", + "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.2", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "peer": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "peer": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@ampproject/remapping": { + "version": "2.2.1", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/compat-data": { + "version": "7.22.6", + "dev": true + }, + "@babel/core": { + "version": "7.22.8", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "@nicolo-ribaudo/semver-v6": "^6.3.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2" + } + }, + "@babel/generator": { + "version": "7.22.7", + "dev": true, + "requires": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.6", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-validator-option": "^7.22.5", + "@nicolo-ribaudo/semver-v6": "^6.3.3", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.5", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.5", + "dev": true + }, + "@babel/helpers": { + "version": "7.22.6", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + } + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.22.7", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/traverse": { + "version": "7.22.8", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jest/console": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/console": "^29.6.1", + "@jest/reporters": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-resolve-dependencies": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "jest-watcher": "^29.6.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1" + } + }, + "@jest/expect": { + "version": "29.6.1", + "dev": true, + "requires": { + "expect": "^29.6.1", + "jest-snapshot": "^29.6.1" + } + }, + "@jest/expect-utils": { + "version": "29.6.1", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3" + } + }, + "@jest/fake-timers": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + } + }, + "@jest/globals": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.1" + } + }, + "@jest/reporters": { + "version": "29.6.1", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + } + }, + "@jest/schemas": { + "version": "29.6.0", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/console": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/test-result": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.6.1", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "dev": true + } + } + }, + "@jest/types": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + } + } + }, + "@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true + }, + "@types/babel__core": { + "version": "7.20.1", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.1", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/graceful-fs": { + "version": "4.1.6", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.5.2", + "dev": true, + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true + }, + "@types/node": { + "version": "20.4.1", + "dev": true + }, + "@types/prettier": { + "version": "2.7.3", + "dev": true + }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "dev": true + }, + "@types/yargs": { + "version": "17.0.24", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", + "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/type-utils": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz", + "integrity": "sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==", + "dev": true, + "peer": true, + "requires": { + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", + "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", + "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", + "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", + "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", + "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", + "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.61.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.10.0", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "peer": true + }, + "babel-jest": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/transform": "^29.6.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "29.5.0", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.5.0", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.9", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "bs-logger": { + "version": "0.2.6", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "requires": { + "semver": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "peer": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001513", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "dev": true + }, + "ci-info": { + "version": "3.8.0", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.3", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "peer": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-newline": { + "version": "3.1.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + }, + "diff-sequences": { + "version": "29.4.3", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.4.454", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "peer": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "peer": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "peer": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "peer": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "dev": true + }, + "eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-semistandard": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-17.0.0.tgz", + "integrity": "sha512-tLi0JYmfiiJgtmRhoES55tENatR7y/5aXOh6cBeW+qjzl1+WwyV0arDqR65XN3/xrPZt+/1EG+xNLknV/0jWsQ==", + "dev": true, + "requires": {} + }, + "eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "peer": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "peer": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "peer": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "peer": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "peer": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "peer": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "peer": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "peer": true, + "requires": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "peer": true, + "requires": {} + }, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "peer": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "peer": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, + "espree": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", + "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "dev": true + }, + "expect": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.6.1", + "@types/node": "*", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "peer": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "peer": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "peer": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "11.12.0", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "peer": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "peer": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "peer": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "peer": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "peer": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "peer": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "dev": true + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "peer": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "peer": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "peer": true + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "peer": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "peer": true + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "peer": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "peer": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "peer": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "peer": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/core": "^29.6.1", + "@jest/types": "^29.6.1", + "import-local": "^3.0.2", + "jest-cli": "^29.6.1" + } + }, + "jest-changed-files": { + "version": "29.5.0", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.6.1", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.6.1", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/core": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.6.1", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.6.1", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.6.1", + "jest-environment-node": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "29.6.1", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + } + }, + "jest-docblock": { + "version": "29.4.3", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.6.1", + "pretty-format": "^29.6.1" + } + }, + "jest-environment-node": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + } + }, + "jest-get-type": { + "version": "29.4.3", + "dev": true + }, + "jest-haste-map": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.6.1", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + } + }, + "jest-matcher-utils": { + "version": "29.6.1", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + } + }, + "jest-message-util": { + "version": "29.6.1", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-util": "^29.6.1" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.4.3", + "dev": true + }, + "jest-resolve": { + "version": "29.6.1", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.6.1", + "dev": true, + "requires": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.6.1" + } + }, + "jest-runner": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/console": "^29.6.1", + "@jest/environment": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-leak-detector": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-resolve": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-util": "^29.6.1", + "jest-watcher": "^29.6.1", + "jest-worker": "^29.6.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/globals": "^29.6.1", + "@jest/source-map": "^29.6.0", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "29.6.1", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.6.1", + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.6.1" + } + }, + "jest-watcher": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.6.1", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.6.1", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "dev": true + }, + "leven": { + "version": "3.1.0", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "merge-stream": { + "version": "2.0.0", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "peer": true + }, + "ms": { + "version": "2.1.2", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "peer": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "peer": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", + "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", + "dev": true + }, + "pretty-format": { + "version": "29.6.1", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pure-rand": { + "version": "6.0.2", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "react-is": { + "version": "18.2.0", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "peer": true + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve.exports": { + "version": "2.0.2", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "6.3.0", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "string-length": { + "version": "4.0.2", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-jest": { + "version": "29.1.1", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "peer": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "peer": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "peer": true + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "walker": { + "version": "1.0.8", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "peer": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "peer": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "dev": true + }, + "yn": { + "version": "3.1.1", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..68638ce --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "@joggr/tempo", + "version": "0.1.0", + "description": "Library used to programmatically build markdown documents, with a heavy tilt toward GitHub Flavored Markdown (GFM).", + "main": "dist/index.js", + "repository": "git@github.com:joggrdocs/tolkien.git", + "author": "Joggr Team ", + "license": "MIT", + "scripts": { + "test": "jest", + "build": "tsc", + "build:examples": "ts-node examples/index.ts", + "format:check": "prettier --check .", + "format:fix": "prettier --write .", + "lint:check": "eslint src/**/*.ts", + "lint:fix": "eslint --fix src/**/*.ts", + "type:check": "tsc --noEmit", + "prepublish": "tsc" + }, + "devDependencies": { + "@types/jest": "^29.5.2", + "@types/node": "^20.4.1", + "@typescript-eslint/eslint-plugin": "^5.61.0", + "eslint": "^8.44.0", + "eslint-config-semistandard": "^17.0.0", + "jest": "^29.6.1", + "prettier": "^3.0.0", + "ts-jest": "^29.1.1", + "ts-node": "^10.9.1", + "typescript": "^5.1.6" + } +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..1c0475e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,3 @@ +export { default } from './lib/Document'; +export { Document } from './lib/Document'; +export { Text } from './lib/Text'; diff --git a/src/lib/Document.ts b/src/lib/Document.ts new file mode 100644 index 0000000..1c0474f --- /dev/null +++ b/src/lib/Document.ts @@ -0,0 +1,190 @@ +import * as md from './markdown/markdown'; +import { Text } from './Text'; + +export type TextCallback = (text: Text) => Text | string; + +export interface DocumentSection { + value: string | string[] | string[][]; + computedValue: string; +} + +export class Document { + private sections: DocumentSection[] = []; + + /* + |------------------ + | Headers + |------------------ + */ + + public h1(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.h1(val) + }); + return this; + } + + public h2(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.h2(val) + }); + return this; + } + + public h3(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.h3(val) + }); + return this; + } + + public h4(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.h4(val) + }); + return this; + } + + public h5(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.h5(val) + }); + return this; + } + + public h6(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.h6(val) + }); + return this; + } + + /* + |------------------ + | Text Elements + |------------------ + */ + + public paragraph(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: md.paragraph(val), + computedValue: val + }); + return this; + } + + /* + |------------------ + | Special Elements + |------------------ + */ + + public table(rows: string[][]) { + this.sections.push({ + value: rows, + computedValue: md.table(rows) + }); + return this; + } + + public html(html: string) { + this.sections.push({ + value: html, + computedValue: html + }); + return this; + } + + public codeBlock(value: string, language?: md.SupportedLanguage) { + this.sections.push({ + value, + computedValue: md.codeBlock(value, language) + }); + return this; + } + + public blockQuote(value: string | TextCallback | Text) { + const val = this.parseText(value); + this.sections.push({ + value: val, + computedValue: md.blockQuote(val) + }); + return this; + } + + public image(value: string, src: string) { + this.sections.push({ + value, + computedValue: md.image(value, src) + }); + return this; + } + + public hr() { + this.sections.push({ + value: md.hr(), + computedValue: md.hr() + }); + return this; + } + + /* + |------------------ + | Lists + |------------------ + */ + + public numberList(value: string[]) { + this.sections.push({ + value, + computedValue: md.ol(value) + }); + return this; + } + + public bulletList(value: string[]) { + this.sections.push({ + value, + computedValue: md.ul(value) + }); + return this; + } + + /* + |------------------ + | Utils + |------------------ + */ + + public toString() { + return this.sections.map(section => section.computedValue).join('\n\n'); + } + + private parseText(value: string | TextCallback | Text): string { + if (typeof value === 'string') { + return value; + } else if (value instanceof Text) { + return value.toString(); + } else if (typeof value === 'function') { + return value(new Text()).toString(); + } else { + throw new Error('Invalid value type'); + } + } +} + +const createDocument = () => new Document(); +export default createDocument; diff --git a/src/lib/Text.ts b/src/lib/Text.ts new file mode 100644 index 0000000..ca7ac42 --- /dev/null +++ b/src/lib/Text.ts @@ -0,0 +1,52 @@ +import * as md from './markdown/markdown'; + +export interface TextSection { + value: string; + computedValue: string; +} + +export class Text { + private value: TextSection[] = []; + + public text(value: string) { + this.value.push({ value, computedValue: value }); + return this; + } + + public code(value: string) { + this.value.push({ value, computedValue: md.code(value) }); + return this; + } + + public bold(value: string) { + this.value.push({ value, computedValue: md.bold(value) }); + return this; + } + + public italic(value: string) { + this.value.push({ value, computedValue: md.italic(value) }); + return this; + } + + public strikeThrough(value: string) { + this.value.push({ value, computedValue: md.strikeThrough(value) }); + return this; + } + + public link(value: string, href: string) { + this.value.push({ value, computedValue: md.link(value, href) }); + return this; + } + + public emoji(value: md.EmojiAlias | md.EmojiUnicode) { + this.value.push({ value: value.toString(), computedValue: value.toString() }); + return this; + } + + public toString() { + return this.value.map(section => section.computedValue).join(' '); + } +} + +const createText = () => new Text(); +export default createText; diff --git a/src/lib/__tests__/Document.test.ts b/src/lib/__tests__/Document.test.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/__tests__/Text.test.ts b/src/lib/__tests__/Text.test.ts new file mode 100644 index 0000000..c415531 --- /dev/null +++ b/src/lib/__tests__/Text.test.ts @@ -0,0 +1,98 @@ +import createText, { Text } from '../Text' +import md from '../markdown'; + +jest.mock('./markdown/markdown'); + +let text: Text; + +beforeEach(() => { + text = createText(); +}); + +afterEach(() => { + jest.resetAllMocks(); +}); + +describe('paragraph', () => { + it('should call md.paragraph with the provided value', () => { + const value = 'Lorem ipsum'; + text.paragraph(value); + + expect(md.paragraph).toHaveBeenCalledWith(value); + }); +}); + +describe('code', () => { + it('should call md.code with the provided value', () => { + const value = 'const foo = "bar";'; + text.code(value); + + expect(md.code).toHaveBeenCalledWith(value); + }); +}); + +describe('bold', () => { + it('should call md.bold with the provided value', () => { + const value = 'Hello'; + text.bold(value); + + expect(md.bold).toHaveBeenCalledWith(value); + }); +}); + +describe('italic', () => { + it('should call md.italic with the provided value', () => { + const value = 'World'; + text.italic(value); + + expect(md.italic).toHaveBeenCalledWith(value); + }); +}); + +describe('strikeThrough', () => { + it('should call md.strikeThrough with the provided value', () => { + const value = 'Strike'; + text.strikeThrough(value); + + expect(md.strikeThrough).toHaveBeenCalledWith(value); + }); +}); + +describe('underline', () => { + it('should call md.underLine with the provided value', () => { + const value = 'Underline'; + text.underline(value); + + expect(md.underLine).toHaveBeenCalledWith(value); + }); +}); + +describe('link', () => { + it('should call md.link with the provided value and href', () => { + const value = 'OpenAI'; + const href = 'https://openai.com'; + text.link(value, href); + + expect(md.link).toHaveBeenCalledWith(value, href); + }); +}); + +describe('emoji', () => { + it('should push the provided emoji value to the text', () => { + const emoji = '๐Ÿ‘'; + text.emoji(emoji); + + expect(text.toString()).toContain(emoji); + }); +}); + +describe('toString', () => { + it('should join the text values with a space', () => { + text.paragraph('Lorem ipsum') + .code('const foo = "bar";') + .bold('Hello') + .italic('World'); + + expect(text.toString()).toBe('Lorem ipsum `const foo = "bar";` **Hello** *World*'); + }); +}); \ No newline at end of file diff --git a/src/lib/markdown/__tests__/markdown.test.ts b/src/lib/markdown/__tests__/markdown.test.ts new file mode 100644 index 0000000..568fa5b --- /dev/null +++ b/src/lib/markdown/__tests__/markdown.test.ts @@ -0,0 +1,112 @@ +import * as md from '../markdown'; + +describe('Text Elements', () => { + it('should return a code block', () => { + expect(md.code('console.log("Hello World!")')).toBe( + '`console.log("Hello World!")`' + ); + }); + + it('should return a bold text', () => { + expect(md.bold('Hello World!')).toBe('**Hello World!**'); + }); + + it('should return an italic text', () => { + expect(md.italic('Hello World!')).toBe('_Hello World!_'); + }); + + it('should return a strikethrough text', () => { + expect(md.strikeThrough('Hello World!')).toBe('~~Hello World!~~'); + }); + + it('should return a link', () => { + expect(md.link('Google', 'https://google.com')).toBe( + '[Google](https://google.com)' + ); + }); +}); + +describe('Headers', () => { + it('should return a h1 header', () => { + expect(md.h1('Hello World!')).toBe('# Hello World!'); + }); + + it('should return a h2 header', () => { + expect(md.h2('Hello World!')).toBe('## Hello World!'); + }); + + it('should return a h3 header', () => { + expect(md.h3('Hello World!')).toBe('### Hello World!'); + }); + + it('should return a h4 header', () => { + expect(md.h4('Hello World!')).toBe('#### Hello World!'); + }); + + it('should return a h5 header', () => { + expect(md.h5('Hello World!')).toBe('##### Hello World!'); + }); + + it('should return a h6 header', () => { + expect(md.h6('Hello World!')).toBe('###### Hello World!'); + }); +}); + +describe('Lists', () => { + it('should return an unordered list', () => { + expect(md.ul(['Hello', 'World'])).toBe('- Hello\n- World'); + }); + + it('should return an ordered list', () => { + expect(md.ol(['Hello', 'World'])).toBe('1. Hello\n2. World'); + }); +}); + +describe('Special Elements', () => { + it('should return a blockquote', () => { + expect(md.blockQuote('Hello World!')).toBe('> Hello World!'); + }); + + it('should return a horizontal rule', () => { + expect(md.hr()).toBe('---'); + }); + + it('should return a code block', () => { + expect(md.codeBlock('console.log("Hello World!")')).toBe( + '```\nconsole.log("Hello World!")\n```' + ); + }); + + it('should return a code block with a language', () => { + expect(md.codeBlock('console.log("Hello World!")', 'javascript')).toBe( + '```javascript\nconsole.log("Hello World!")\n```' + ); + }); + + it('should return a shortcode emoji', () => { + expect(md.emoji('smile')).toBe(':smile:'); + }); + + it('should return a unicode emoji', () => { + expect(md.emoji('๐Ÿ˜€')).toBe('๐Ÿ˜€'); + }); +}); + +describe('Tables', () => { + it('should return a table', () => { + expect( + md.table([ + ['Name', 'Age'], + ['John', '20'], + ['Jane', '19'] + ]) + ).toBe( + ` +| Name | Age | +| ---- | --- | +| John | 20 | +| Jane | 19 | +`.trim() + ); + }); +}); diff --git a/src/lib/markdown/codeBlock.ts b/src/lib/markdown/codeBlock.ts new file mode 100644 index 0000000..94fcb16 --- /dev/null +++ b/src/lib/markdown/codeBlock.ts @@ -0,0 +1,88 @@ +/* +|========================================================================== +| codeBlock +|========================================================================== +*/ + +/** + * Supported languages by GitHub Linguist + * + * @link https://github.com/github-linguist/linguist/blob/master/lib/linguist/languages.yml + */ +export const supportedLanguages = [ + 'actionscript3', + 'apache', + 'applescript', + 'asp', + 'brainfuck', + 'c', + 'cfm', + 'clojure', + 'cmake', + 'coffee-script', + 'coffeescript', + 'coffee', + 'cpp', + 'cs', + 'csharp', + 'css', + 'csv', + 'bash', + 'diff', + 'elixir', + 'erb', + 'go', + 'haml', + 'html', + 'http', + 'java', + 'javascript', + 'json', + 'jsx', + 'less', + 'lolcode', + 'make', + 'markdown', + 'matlab', + 'nginx', + 'objectivec', + 'pascal', + 'PHP', + 'Perl', + 'python', + 'profile', + 'rust', + 'salt', + 'shell', + 'sh', + 'zsh', + 'bash', + 'scss', + 'sql', + 'svg', + 'swift', + 'rb', + 'jruby', + 'ruby', + 'smalltalk', + 'vim', + 'viml', + 'volt', + 'vhdl', + 'vue', + 'xml', + 'yaml' +] as const; +export type SupportedLanguage = (typeof supportedLanguages)[number]; + +/** + * @throws if the string is not a valid (supported) language by Github-Linguist which is used to provide + * syntax highlighting for Github markdown files. + */ +export function assertSupportedLanguage(language: SupportedLanguage) { + if (!supportedLanguages.includes(language)) { + throw new Error( + `Invalid language of ${language} passed to a code block, please use one of the supported languages. To see supported languages view this file: https://github.com/github-linguist/linguist/blob/master/lib/linguist/languages.yml` + ); + } +} diff --git a/src/lib/markdown/emoji.ts b/src/lib/markdown/emoji.ts new file mode 100644 index 0000000..c4bcf68 --- /dev/null +++ b/src/lib/markdown/emoji.ts @@ -0,0 +1,9130 @@ +/* +|========================================================================== +| emoji +|========================================================================== +*/ + +/** + * List of emojis supported by GitHub + * + * @link https://github.com/ricealexander/emoji-list/blob/main/emojis.json + */ +const supportedEmojis = [ + { + alias: ['+1', 'thumbsup'], + unicode: '๐Ÿ‘', + category: 'Gesture' + }, + { + alias: ['-1', 'thumbsdown'], + unicode: '๐Ÿ‘Ž', + category: 'Gesture' + }, + { + alias: '100', + unicode: '๐Ÿ’ฏ', + category: 'Symbol' + }, + { + alias: '1234', + unicode: '๐Ÿ”ข', + category: 'Symbol' + }, + { + alias: '1st_place_medal', + unicode: '๐Ÿฅ‡', + category: 'Activity' + }, + { + alias: '2nd_place_medal', + unicode: '๐Ÿฅˆ', + category: 'Activity' + }, + { + alias: '3rd_place_medal', + unicode: '๐Ÿฅ‰', + category: 'Activity' + }, + { + alias: '8ball', + unicode: '๐ŸŽฑ', + category: 'Activity' + }, + { + alias: 'a', + unicode: '๐Ÿ…ฐ๏ธ', + category: 'Symbol' + }, + { + alias: 'ab', + unicode: '๐Ÿ†Ž', + category: 'Symbol' + }, + { + alias: 'abacus', + unicode: '๐Ÿงฎ', + category: 'Object' + }, + { + alias: 'abc', + unicode: '๐Ÿ”ค', + category: 'Symbol' + }, + { + alias: 'abcd', + unicode: '๐Ÿ”ก', + category: 'Symbol' + }, + { + alias: 'accept', + unicode: '๐Ÿ‰‘', + category: 'Symbol' + }, + { + alias: 'accordion', + unicode: '๐Ÿช—', + category: 'Activity' + }, + { + alias: 'adhesive_bandage', + unicode: '๐Ÿฉน', + category: 'Object' + }, + { + alias: 'adult', + unicode: '๐Ÿง‘', + category: 'Person' + }, + { + alias: 'aerial_tramway', + unicode: '๐Ÿšก', + category: 'Travel' + }, + { + alias: 'afghanistan', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'airplane', + unicode: 'โœˆ๏ธ', + category: 'Travel' + }, + { + alias: 'aland_islands', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฝ', + category: 'Country' + }, + { + alias: 'alarm_clock', + unicode: 'โฐ', + category: 'Object' + }, + { + alias: 'albania', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'alembic', + unicode: 'โš—๏ธ', + category: 'Object' + }, + { + alias: 'algeria', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'alien', + unicode: '๐Ÿ‘ฝ', + category: 'Person' + }, + { + alias: 'ambulance', + unicode: '๐Ÿš‘', + category: 'Travel' + }, + { + alias: 'american_samoa', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'amphora', + unicode: '๐Ÿบ', + category: 'Object' + }, + { + alias: 'anatomical_heart', + unicode: '๐Ÿซ€', + category: 'Person' + }, + { + alias: 'anchor', + unicode: 'โš“๏ธ', + category: 'Travel' + }, + { + alias: 'andorra', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'angel', + unicode: '๐Ÿ‘ผ', + category: 'Person' + }, + { + alias: 'anger', + unicode: '๐Ÿ’ข', + category: 'Symbol' + }, + { + alias: 'angola', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'angry', + unicode: '๐Ÿ˜ ', + category: 'Smiley' + }, + { + alias: 'anguilla', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'anguished', + unicode: '๐Ÿ˜ง', + category: 'Smiley' + }, + { + alias: 'ant', + unicode: '๐Ÿœ', + category: 'Animal' + }, + { + alias: 'antarctica', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ถ', + category: 'Country' + }, + { + alias: 'antigua_barbuda', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'apple', + unicode: '๐ŸŽ', + category: 'Food' + }, + { + alias: 'aquarius', + unicode: 'โ™’๏ธ', + category: 'Symbol' + }, + { + alias: 'argentina', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'aries', + unicode: 'โ™ˆ๏ธ', + category: 'Symbol' + }, + { + alias: 'armenia', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'arrow_backward', + unicode: 'โ—€๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_double_down', + unicode: 'โฌ', + category: 'Symbol' + }, + { + alias: 'arrow_double_up', + unicode: 'โซ', + category: 'Symbol' + }, + { + alias: 'arrow_down', + unicode: 'โฌ‡๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_down_small', + unicode: '๐Ÿ”ฝ', + category: 'Symbol' + }, + { + alias: 'arrow_forward', + unicode: 'โ–ถ๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_heading_down', + unicode: 'โคต๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_heading_up', + unicode: 'โคด๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_left', + unicode: 'โฌ…๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_lower_left', + unicode: 'โ†™๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_lower_right', + unicode: 'โ†˜๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_right', + unicode: 'โžก๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_right_hook', + unicode: 'โ†ช๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_up', + unicode: 'โฌ†๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_up_down', + unicode: 'โ†•๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_up_small', + unicode: '๐Ÿ”ผ', + category: 'Symbol' + }, + { + alias: 'arrow_upper_left', + unicode: 'โ†–๏ธ', + category: 'Symbol' + }, + { + alias: 'arrow_upper_right', + unicode: 'โ†—๏ธ', + category: 'Symbol' + }, + { + alias: 'arrows_clockwise', + unicode: '๐Ÿ”ƒ', + category: 'Symbol' + }, + { + alias: 'arrows_counterclockwise', + unicode: '๐Ÿ”„', + category: 'Symbol' + }, + { + alias: 'art', + unicode: '๐ŸŽจ', + category: 'Activity' + }, + { + alias: 'articulated_lorry', + unicode: '๐Ÿš›', + category: 'Travel' + }, + { + alias: 'artificial_satellite', + unicode: '๐Ÿ›ฐ', + category: 'Object' + }, + { + alias: 'artist', + unicode: '๐Ÿง‘โ€๐ŸŽจ', + category: 'Person' + }, + { + alias: 'aruba', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'ascension_island', + unicode: '๐Ÿ‡ฆ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'asterisk', + unicode: '*๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'astonished', + unicode: '๐Ÿ˜ฒ', + category: 'Smiley' + }, + { + alias: 'astronaut', + unicode: '๐Ÿง‘โ€๐Ÿš€', + category: 'Person' + }, + { + alias: 'athletic_shoe', + unicode: '๐Ÿ‘Ÿ', + category: 'Clothing' + }, + { + alias: 'atm', + unicode: '๐Ÿง', + category: 'Travel' + }, + { + alias: 'atom', + unicode: false, + category: 'Custom' + }, + { + alias: 'atom_symbol', + unicode: 'โš›๏ธ', + category: 'Symbol' + }, + { + alias: 'australia', + unicode: '๐Ÿ‡ฆ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'austria', + unicode: '๐Ÿ‡ฆ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'auto_rickshaw', + unicode: '๐Ÿ›บ', + category: 'Travel' + }, + { + alias: 'avocado', + unicode: '๐Ÿฅ‘', + category: 'Food' + }, + { + alias: 'axe', + unicode: '๐Ÿช“', + category: 'Object' + }, + { + alias: 'azerbaijan', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'b', + unicode: '๐Ÿ…ฑ๏ธ', + category: 'Symbol' + }, + { + alias: 'baby', + unicode: '๐Ÿ‘ถ', + category: 'Person' + }, + { + alias: 'baby_bottle', + unicode: '๐Ÿผ', + category: 'Object' + }, + { + alias: 'baby_chick', + unicode: '๐Ÿค', + category: 'Animal' + }, + { + alias: 'baby_symbol', + unicode: '๐Ÿšผ', + category: 'Symbol' + }, + { + alias: 'back', + unicode: '๐Ÿ”™', + category: 'Symbol' + }, + { + alias: 'bacon', + unicode: '๐Ÿฅ“', + category: 'Food' + }, + { + alias: 'badger', + unicode: '๐Ÿฆก', + category: 'Animal' + }, + { + alias: 'badminton', + unicode: '๐Ÿธ', + category: 'Activity' + }, + { + alias: 'bagel', + unicode: '๐Ÿฅฏ', + category: 'Food' + }, + { + alias: 'baggage_claim', + unicode: '๐Ÿ›„', + category: 'Symbol' + }, + { + alias: 'baguette_bread', + unicode: '๐Ÿฅ–', + category: 'Food' + }, + { + alias: 'bahamas', + unicode: '๐Ÿ‡ง๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'bahrain', + unicode: '๐Ÿ‡ง๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'balance_scale', + unicode: 'โš–๏ธ', + category: 'Object' + }, + { + alias: 'bald_man', + unicode: '๐Ÿ‘จโ€๐Ÿฆฒ', + category: 'Person' + }, + { + alias: 'bald_woman', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆฒ', + category: 'Person' + }, + { + alias: 'ballet_shoes', + unicode: '๐Ÿฉฐ', + category: 'Activity' + }, + { + alias: 'balloon', + unicode: '๐ŸŽˆ', + category: 'Object' + }, + { + alias: 'ballot_box', + unicode: '๐Ÿ—ณ', + category: 'Object' + }, + { + alias: 'ballot_box_with_check', + unicode: 'โ˜‘๏ธ', + category: 'Symbol' + }, + { + alias: 'bamboo', + unicode: '๐ŸŽ', + category: 'Object' + }, + { + alias: 'banana', + unicode: '๐ŸŒ', + category: 'Food' + }, + { + alias: 'bangbang', + unicode: 'โ€ผ๏ธ', + category: 'Symbol' + }, + { + alias: 'bangladesh', + unicode: '๐Ÿ‡ง๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'banjo', + unicode: '๐Ÿช•', + category: 'Object' + }, + { + alias: 'bank', + unicode: '๐Ÿฆ', + category: 'Travel' + }, + { + alias: 'bar_chart', + unicode: '๐Ÿ“Š', + category: 'Object' + }, + { + alias: 'barbados', + unicode: '๐Ÿ‡ง๐Ÿ‡ง', + category: 'Country' + }, + { + alias: 'barber', + unicode: '๐Ÿ’ˆ', + category: 'Travel' + }, + { + alias: 'baseball', + unicode: 'โšพ๏ธ', + category: 'Activity' + }, + { + alias: ['basecamp', 'basecampy'], + unicode: false, + category: 'Custom' + }, + { + alias: 'basket', + unicode: '๐Ÿงบ', + category: 'Object' + }, + { + alias: 'basketball', + unicode: '๐Ÿ€', + category: 'Activity' + }, + { + alias: 'basketball_man', + unicode: 'โ›น', + category: 'Activity' + }, + { + alias: 'basketball_woman', + unicode: 'โ›น๏ธโ€โ™€๏ธ', + category: 'Activity' + }, + { + alias: 'bat', + unicode: '๐Ÿฆ‡', + category: 'Animal' + }, + { + alias: 'bath', + unicode: '๐Ÿ›€', + category: 'Object' + }, + { + alias: 'bathtub', + unicode: '๐Ÿ›', + category: 'Object' + }, + { + alias: 'battery', + unicode: '๐Ÿ”‹', + category: 'Object' + }, + { + alias: 'beach_umbrella', + unicode: '๐Ÿ–', + category: 'Travel' + }, + { + alias: 'bear', + unicode: '๐Ÿป', + category: 'Animal' + }, + { + alias: 'bearded_person', + unicode: '๐Ÿง”', + category: 'Person' + }, + { + alias: 'beaver', + unicode: '๐Ÿฆซ', + category: 'Animal' + }, + { + alias: 'bed', + unicode: '๐Ÿ›', + category: 'Object' + }, + { + alias: ['bee', 'honeybee'], + unicode: '๐Ÿ', + category: 'Animal' + }, + { + alias: 'beer', + unicode: '๐Ÿบ', + category: 'Food' + }, + { + alias: 'beers', + unicode: '๐Ÿป', + category: 'Food' + }, + { + alias: 'beetle', + unicode: '๐Ÿž', + category: 'Animal' + }, + { + alias: 'beginner', + unicode: '๐Ÿ”ฐ', + category: 'Travel' + }, + { + alias: 'belarus', + unicode: '๐Ÿ‡ง๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'belgium', + unicode: '๐Ÿ‡ง๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'belize', + unicode: '๐Ÿ‡ง๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'bell', + unicode: '๐Ÿ””', + category: 'Object' + }, + { + alias: 'bell_pepper', + unicode: '๐Ÿซ‘', + category: 'Food' + }, + { + alias: 'bellhop_bell', + unicode: '๐Ÿ›Ž', + category: 'Object' + }, + { + alias: 'benin', + unicode: '๐Ÿ‡ง๐Ÿ‡ฏ', + category: 'Country' + }, + { + alias: 'bento', + unicode: '๐Ÿฑ', + category: 'Food' + }, + { + alias: 'bermuda', + unicode: '๐Ÿ‡ง๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'beverage_box', + unicode: '๐Ÿงƒ', + category: 'Food' + }, + { + alias: 'bhutan', + unicode: '๐Ÿ‡ง๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'bike', + unicode: '๐Ÿšฒ', + category: 'Travel' + }, + { + alias: ['biking_man', 'bicyclist'], + unicode: '๐Ÿšด', + category: 'Activity' + }, + { + alias: 'biking_woman', + unicode: '๐Ÿšดโ€โ™€', + category: 'Activity' + }, + { + alias: 'bikini', + unicode: '๐Ÿ‘™', + category: 'Clothing' + }, + { + alias: 'billed_cap', + unicode: '๐Ÿงข', + category: 'Clothing' + }, + { + alias: 'biohazard', + unicode: 'โ˜ฃ๏ธ', + category: 'Symbol' + }, + { + alias: 'bird', + unicode: '๐Ÿฆ', + category: 'Animal' + }, + { + alias: 'birthday', + unicode: '๐ŸŽ‚', + category: 'Food' + }, + { + alias: 'bison', + unicode: '๐Ÿฆฌ', + category: 'Animal' + }, + { + alias: 'black_cat', + unicode: '๐Ÿˆโ€โฌ›', + category: 'Animal' + }, + { + alias: 'black_circle', + unicode: 'โšซ๏ธ', + category: 'Symbol' + }, + { + alias: 'black_flag', + unicode: '๐Ÿด', + category: 'Flag' + }, + { + alias: 'black_heart', + unicode: '๐Ÿ–ค', + category: 'Symbol' + }, + { + alias: 'black_joker', + unicode: '๐Ÿƒ', + category: 'Object' + }, + { + alias: 'black_large_square', + unicode: 'โฌ›๏ธ', + category: 'Symbol' + }, + { + alias: 'black_medium_small_square', + unicode: 'โ—พ๏ธ', + category: 'Symbol' + }, + { + alias: 'black_medium_square', + unicode: 'โ—ผ๏ธ', + category: 'Symbol' + }, + { + alias: 'black_nib', + unicode: 'โœ’๏ธ', + category: 'Object' + }, + { + alias: 'black_small_square', + unicode: 'โ–ช๏ธ', + category: 'Symbol' + }, + { + alias: 'black_square_button', + unicode: '๐Ÿ”ฒ', + category: 'Symbol' + }, + { + alias: 'blond_haired_man', + unicode: '๐Ÿ‘ฑโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'blond_haired_person', + unicode: '๐Ÿ‘ฑ', + category: 'Person' + }, + { + alias: 'blond_haired_woman', + unicode: '๐Ÿ‘ฑโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'blonde_woman', + unicode: '๐Ÿ‘ฑโ€โ™€', + category: 'Person' + }, + { + alias: 'blossom', + unicode: '๐ŸŒผ', + category: 'Nature' + }, + { + alias: 'blowfish', + unicode: '๐Ÿก', + category: 'Animal' + }, + { + alias: 'blue_book', + unicode: '๐Ÿ“˜', + category: 'Object' + }, + { + alias: 'blue_car', + unicode: '๐Ÿš™', + category: 'Travel' + }, + { + alias: 'blue_heart', + unicode: '๐Ÿ’™', + category: 'Symbol' + }, + { + alias: 'blue_square', + unicode: '๐ŸŸฆ', + category: 'Symbol' + }, + { + alias: 'blueberries', + unicode: '๐Ÿซ', + category: 'Food' + }, + { + alias: 'blush', + unicode: '๐Ÿ˜Š', + category: 'Smiley' + }, + { + alias: 'boar', + unicode: '๐Ÿ—', + category: 'Animal' + }, + { + alias: ['boat', 'sailboat'], + unicode: 'โ›ต๏ธ', + category: 'Travel' + }, + { + alias: 'bolivia', + unicode: '๐Ÿ‡ง๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'bomb', + unicode: '๐Ÿ’ฃ', + category: 'Object' + }, + { + alias: 'bone', + unicode: '๐Ÿฆด', + category: 'Object' + }, + { + alias: ['book', 'open_book'], + unicode: '๐Ÿ“–', + category: 'Object' + }, + { + alias: 'bookmark', + unicode: '๐Ÿ”–', + category: 'Object' + }, + { + alias: 'bookmark_tabs', + unicode: '๐Ÿ“‘', + category: 'Object' + }, + { + alias: 'books', + unicode: '๐Ÿ“š', + category: 'Object' + }, + { + alias: ['boom', 'collision'], + unicode: '๐Ÿ’ฅ', + category: 'Nature' + }, + { + alias: 'boomerang', + unicode: '๐Ÿชƒ', + category: 'Object' + }, + { + alias: 'boot', + unicode: '๐Ÿ‘ข', + category: 'Object' + }, + { + alias: 'bosnia_herzegovina', + unicode: '๐Ÿ‡ง๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'botswana', + unicode: '๐Ÿ‡ง๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'bouncing_ball_man', + unicode: 'โ›น๏ธโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'bouncing_ball_person', + unicode: 'โ›น๏ธ', + category: 'Person' + }, + { + alias: 'bouncing_ball_woman', + unicode: 'โ›น๏ธโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'bouquet', + unicode: '๐Ÿ’', + category: 'Nature' + }, + { + alias: 'bouvet_island', + unicode: '๐Ÿ‡ง๐Ÿ‡ป', + category: 'Country' + }, + { + alias: 'bow_and_arrow', + unicode: '๐Ÿน', + category: 'Activity' + }, + { + alias: ['bowing_man', 'bow'], + unicode: '๐Ÿ™‡', + category: 'Person' + }, + { + alias: 'bowing_woman', + unicode: '๐Ÿ™‡โ€โ™€', + category: 'Person' + }, + { + alias: 'bowl_with_spoon', + unicode: '๐Ÿฅฃ', + category: 'Food' + }, + { + alias: 'bowling', + unicode: '๐ŸŽณ', + category: 'Activity' + }, + { + alias: 'bowtie', + unicode: false, + category: 'Custom' + }, + { + alias: 'boxing_glove', + unicode: '๐ŸฅŠ', + category: 'Activity' + }, + { + alias: 'boy', + unicode: '๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'brain', + unicode: '๐Ÿง ', + category: 'Person' + }, + { + alias: 'brazil', + unicode: '๐Ÿ‡ง๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'bread', + unicode: '๐Ÿž', + category: 'Food' + }, + { + alias: 'breast_feeding', + unicode: '๐Ÿคฑ', + category: 'Person' + }, + { + alias: 'bricks', + unicode: '๐Ÿงฑ', + category: 'Object' + }, + { + alias: 'bride_with_veil', + unicode: '๐Ÿ‘ฐ', + category: 'Person' + }, + { + alias: 'bridge_at_night', + unicode: '๐ŸŒ‰', + category: 'Travel' + }, + { + alias: 'briefcase', + unicode: '๐Ÿ’ผ', + category: 'Object' + }, + { + alias: 'british_indian_ocean_territory', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'british_virgin_islands', + unicode: '๐Ÿ‡ป๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'broccoli', + unicode: '๐Ÿฅฆ', + category: 'Food' + }, + { + alias: 'broken_heart', + unicode: '๐Ÿ’”', + category: 'Symbol' + }, + { + alias: 'broom', + unicode: '๐Ÿงน', + category: 'Object' + }, + { + alias: 'brown_circle', + unicode: '๐ŸŸค', + category: 'Symbol' + }, + { + alias: 'brown_heart', + unicode: '๐ŸคŽ', + category: 'Symbol' + }, + { + alias: 'brown_square', + unicode: '๐ŸŸซ', + category: 'Symbol' + }, + { + alias: 'brunei', + unicode: '๐Ÿ‡ง๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'bubble_tea', + unicode: '๐Ÿง‹', + category: 'Food' + }, + { + alias: 'bucket', + unicode: '๐Ÿชฃ', + category: 'Object' + }, + { + alias: 'bug', + unicode: '๐Ÿ›', + category: 'Animal' + }, + { + alias: 'building_construction', + unicode: '๐Ÿ—', + category: 'Travel' + }, + { + alias: 'bulb', + unicode: '๐Ÿ’ก', + category: 'Object' + }, + { + alias: 'bulgaria', + unicode: '๐Ÿ‡ง๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'bullettrain_front', + unicode: '๐Ÿš…', + category: 'Travel' + }, + { + alias: 'bullettrain_side', + unicode: '๐Ÿš„', + category: 'Travel' + }, + { + alias: 'burkina_faso', + unicode: '๐Ÿ‡ง๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'burrito', + unicode: '๐ŸŒฏ', + category: 'Food' + }, + { + alias: 'burundi', + unicode: '๐Ÿ‡ง๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'bus', + unicode: '๐ŸšŒ', + category: 'Travel' + }, + { + alias: 'business_suit_levitating', + unicode: '๐Ÿ•ด', + category: 'Object' + }, + { + alias: 'busstop', + unicode: '๐Ÿš', + category: 'Travel' + }, + { + alias: 'bust_in_silhouette', + unicode: '๐Ÿ‘ค', + category: 'Person' + }, + { + alias: 'busts_in_silhouette', + unicode: '๐Ÿ‘ฅ', + category: 'Person' + }, + { + alias: 'butter', + unicode: '๐Ÿงˆ', + category: 'Food' + }, + { + alias: 'butterfly', + unicode: '๐Ÿฆ‹', + category: 'Animal' + }, + { + alias: 'cactus', + unicode: '๐ŸŒต', + category: 'Nature' + }, + { + alias: 'cake', + unicode: '๐Ÿฐ', + category: 'Food' + }, + { + alias: 'calendar', + unicode: '๐Ÿ“†', + category: 'Object' + }, + { + alias: 'call_me_hand', + unicode: '๐Ÿค™', + category: 'Gesture' + }, + { + alias: 'calling', + unicode: '๐Ÿ“ฒ', + category: 'Object' + }, + { + alias: 'cambodia', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'camel', + unicode: '๐Ÿซ', + category: 'Animal' + }, + { + alias: 'camera', + unicode: '๐Ÿ“ท', + category: 'Object' + }, + { + alias: 'camera_flash', + unicode: '๐Ÿ“ธ', + category: 'Object' + }, + { + alias: 'cameroon', + unicode: '๐Ÿ‡จ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'camping', + unicode: '๐Ÿ•', + category: 'Travel' + }, + { + alias: 'canada', + unicode: '๐Ÿ‡จ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'canary_islands', + unicode: '๐Ÿ‡ฎ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'cancer', + unicode: 'โ™‹๏ธ', + category: 'Symbol' + }, + { + alias: 'candle', + unicode: '๐Ÿ•ฏ', + category: 'Object' + }, + { + alias: 'candy', + unicode: '๐Ÿฌ', + category: 'Food' + }, + { + alias: 'canned_food', + unicode: '๐Ÿฅซ', + category: 'Food' + }, + { + alias: 'canoe', + unicode: '๐Ÿ›ถ', + category: 'Travel' + }, + { + alias: 'cape_verde', + unicode: '๐Ÿ‡จ๐Ÿ‡ป', + category: 'Country' + }, + { + alias: 'capital_abcd', + unicode: '๐Ÿ” ', + category: 'Symbol' + }, + { + alias: 'capricorn', + unicode: 'โ™‘๏ธ', + category: 'Symbol' + }, + { + alias: ['car', 'red_car'], + unicode: '๐Ÿš—', + category: 'Travel' + }, + { + alias: 'card_file_box', + unicode: '๐Ÿ—ƒ', + category: 'Object' + }, + { + alias: 'card_index', + unicode: '๐Ÿ“‡', + category: 'Object' + }, + { + alias: 'card_index_dividers', + unicode: '๐Ÿ—‚', + category: 'Object' + }, + { + alias: 'caribbean_netherlands', + unicode: '๐Ÿ‡ง๐Ÿ‡ถ', + category: 'Country' + }, + { + alias: 'carousel_horse', + unicode: '๐ŸŽ ', + category: 'Travel' + }, + { + alias: 'carpentry_saw', + unicode: '๐Ÿชš', + category: 'Object' + }, + { + alias: 'carrot', + unicode: '๐Ÿฅ•', + category: 'Food' + }, + { + alias: 'cartwheeling', + unicode: '๐Ÿคธ', + category: 'Activity' + }, + { + alias: 'cat', + unicode: '๐Ÿฑ', + category: 'Animal' + }, + { + alias: 'cat2', + unicode: '๐Ÿˆ', + category: 'Animal' + }, + { + alias: 'cayman_islands', + unicode: '๐Ÿ‡ฐ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'cd', + unicode: '๐Ÿ’ฟ', + category: 'Object' + }, + { + alias: 'central_african_republic', + unicode: '๐Ÿ‡จ๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'ceuta_melilla', + unicode: '๐Ÿ‡ช๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'chad', + unicode: '๐Ÿ‡น๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'chains', + unicode: 'โ›“', + category: 'Object' + }, + { + alias: 'chair', + unicode: '๐Ÿช‘', + category: 'Object' + }, + { + alias: 'champagne', + unicode: '๐Ÿพ', + category: 'Food' + }, + { + alias: 'chart', + unicode: '๐Ÿ’น', + category: 'Symbol' + }, + { + alias: 'chart_with_downwards_trend', + unicode: '๐Ÿ“‰', + category: 'Object' + }, + { + alias: 'chart_with_upwards_trend', + unicode: '๐Ÿ“ˆ', + category: 'Object' + }, + { + alias: 'checkered_flag', + unicode: '๐Ÿ', + category: 'Flag' + }, + { + alias: 'cheese', + unicode: '๐Ÿง€', + category: 'Food' + }, + { + alias: 'cherries', + unicode: '๐Ÿ’', + category: 'Food' + }, + { + alias: 'cherry_blossom', + unicode: '๐ŸŒธ', + category: 'Nature' + }, + { + alias: 'chess_pawn', + unicode: 'โ™Ÿ๏ธ', + category: 'Activity' + }, + { + alias: 'chestnut', + unicode: '๐ŸŒฐ', + category: 'Nature' + }, + { + alias: 'chicken', + unicode: '๐Ÿ”', + category: 'Animal' + }, + { + alias: 'child', + unicode: '๐Ÿง’', + category: 'Person' + }, + { + alias: 'children_crossing', + unicode: '๐Ÿšธ', + category: 'Symbol' + }, + { + alias: 'chile', + unicode: '๐Ÿ‡จ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'chipmunk', + unicode: '๐Ÿฟ', + category: 'Animal' + }, + { + alias: 'chocolate_bar', + unicode: '๐Ÿซ', + category: 'Food' + }, + { + alias: 'chopsticks', + unicode: '๐Ÿฅข', + category: 'Food' + }, + { + alias: 'christmas_island', + unicode: '๐Ÿ‡จ๐Ÿ‡ฝ', + category: 'Country' + }, + { + alias: 'christmas_tree', + unicode: '๐ŸŽ„', + category: 'Object' + }, + { + alias: 'church', + unicode: 'โ›ช๏ธ', + category: 'Travel' + }, + { + alias: 'cinema', + unicode: '๐ŸŽฆ', + category: 'Symbol' + }, + { + alias: 'circus_tent', + unicode: '๐ŸŽช', + category: 'Activity' + }, + { + alias: 'city_sunrise', + unicode: '๐ŸŒ‡', + category: 'Travel' + }, + { + alias: 'city_sunset', + unicode: '๐ŸŒ†', + category: 'Travel' + }, + { + alias: 'cityscape', + unicode: '๐Ÿ™', + category: 'Travel' + }, + { + alias: 'cl', + unicode: '๐Ÿ†‘', + category: 'Symbol' + }, + { + alias: 'clamp', + unicode: '๐Ÿ—œ', + category: 'Object' + }, + { + alias: 'clap', + unicode: '๐Ÿ‘', + category: 'Gesture' + }, + { + alias: 'clapper', + unicode: '๐ŸŽฌ', + category: 'Activity' + }, + { + alias: 'classical_building', + unicode: '๐Ÿ›', + category: 'Travel' + }, + { + alias: 'climbing', + unicode: '๐Ÿง—', + category: 'Person' + }, + { + alias: 'climbing_man', + unicode: '๐Ÿง—โ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'climbing_woman', + unicode: '๐Ÿง—โ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'clinking_glasses', + unicode: '๐Ÿฅ‚', + category: 'Food' + }, + { + alias: 'clipboard', + unicode: '๐Ÿ“‹', + category: 'Object' + }, + { + alias: 'clipperton_island', + unicode: '๐Ÿ‡จ๐Ÿ‡ต', + category: 'Country' + }, + { + alias: 'clock1', + unicode: '๐Ÿ•', + category: 'Symbol' + }, + { + alias: 'clock10', + unicode: '๐Ÿ•™', + category: 'Symbol' + }, + { + alias: 'clock1030', + unicode: '๐Ÿ•ฅ', + category: 'Symbol' + }, + { + alias: 'clock11', + unicode: '๐Ÿ•š', + category: 'Symbol' + }, + { + alias: 'clock1130', + unicode: '๐Ÿ•ฆ', + category: 'Symbol' + }, + { + alias: 'clock12', + unicode: '๐Ÿ•›', + category: 'Symbol' + }, + { + alias: 'clock1230', + unicode: '๐Ÿ•ง', + category: 'Symbol' + }, + { + alias: 'clock130', + unicode: '๐Ÿ•œ', + category: 'Symbol' + }, + { + alias: 'clock2', + unicode: '๐Ÿ•‘', + category: 'Symbol' + }, + { + alias: 'clock230', + unicode: '๐Ÿ•', + category: 'Symbol' + }, + { + alias: 'clock3', + unicode: '๐Ÿ•’', + category: 'Symbol' + }, + { + alias: 'clock330', + unicode: '๐Ÿ•ž', + category: 'Symbol' + }, + { + alias: 'clock4', + unicode: '๐Ÿ•“', + category: 'Symbol' + }, + { + alias: 'clock430', + unicode: '๐Ÿ•Ÿ', + category: 'Symbol' + }, + { + alias: 'clock5', + unicode: '๐Ÿ•”', + category: 'Symbol' + }, + { + alias: 'clock530', + unicode: '๐Ÿ• ', + category: 'Symbol' + }, + { + alias: 'clock6', + unicode: '๐Ÿ••', + category: 'Symbol' + }, + { + alias: 'clock630', + unicode: '๐Ÿ•ก', + category: 'Symbol' + }, + { + alias: 'clock7', + unicode: '๐Ÿ•–', + category: 'Symbol' + }, + { + alias: 'clock730', + unicode: '๐Ÿ•ข', + category: 'Symbol' + }, + { + alias: 'clock8', + unicode: '๐Ÿ•—', + category: 'Symbol' + }, + { + alias: 'clock830', + unicode: '๐Ÿ•ฃ', + category: 'Symbol' + }, + { + alias: 'clock9', + unicode: '๐Ÿ•˜', + category: 'Symbol' + }, + { + alias: 'clock930', + unicode: '๐Ÿ•ค', + category: 'Symbol' + }, + { + alias: 'closed_book', + unicode: '๐Ÿ“•', + category: 'Object' + }, + { + alias: 'closed_lock_with_key', + unicode: '๐Ÿ”', + category: 'Object' + }, + { + alias: 'closed_umbrella', + unicode: '๐ŸŒ‚', + category: 'Object' + }, + { + alias: 'cloud', + unicode: 'โ˜๏ธ', + category: 'Nature' + }, + { + alias: 'cloud_with_lightning', + unicode: '๐ŸŒฉ', + category: 'Nature' + }, + { + alias: 'cloud_with_lightning_and_rain', + unicode: 'โ›ˆ', + category: 'Nature' + }, + { + alias: 'cloud_with_rain', + unicode: '๐ŸŒง', + category: 'Nature' + }, + { + alias: 'cloud_with_snow', + unicode: '๐ŸŒจ', + category: 'Nature' + }, + { + alias: 'clown_face', + unicode: '๐Ÿคก', + category: 'Smiley' + }, + { + alias: 'clubs', + unicode: 'โ™ฃ๏ธ', + category: 'Symbol' + }, + { + alias: 'cn', + unicode: '๐Ÿ‡จ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'coat', + unicode: '๐Ÿงฅ', + category: 'Clothing' + }, + { + alias: 'cockroach', + unicode: '๐Ÿชณ', + category: 'Animal' + }, + { + alias: 'cocktail', + unicode: '๐Ÿธ', + category: 'Food' + }, + { + alias: 'coconut', + unicode: '๐Ÿฅฅ', + category: 'Food' + }, + { + alias: 'cocos_islands', + unicode: '๐Ÿ‡จ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'coffee', + unicode: 'โ˜•๏ธ', + category: 'Food' + }, + { + alias: 'coffin', + unicode: 'โšฐ๏ธ', + category: 'Object' + }, + { + alias: 'coin', + unicode: '๐Ÿช™', + category: 'Object' + }, + { + alias: 'cold_face', + unicode: '๐Ÿฅถ', + category: 'Smiley' + }, + { + alias: 'cold_sweat', + unicode: '๐Ÿ˜ฐ', + category: 'Smiley' + }, + { + alias: 'colombia', + unicode: '๐Ÿ‡จ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'comet', + unicode: 'โ˜„', + category: 'Nature' + }, + { + alias: 'comoros', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'compass', + unicode: '๐Ÿงญ', + category: 'Object' + }, + { + alias: 'computer', + unicode: '๐Ÿ’ป', + category: 'Object' + }, + { + alias: 'computer_mouse', + unicode: '๐Ÿ–ฑ', + category: 'Object' + }, + { + alias: 'confetti_ball', + unicode: '๐ŸŽŠ', + category: 'Object' + }, + { + alias: 'confounded', + unicode: '๐Ÿ˜–', + category: 'Smiley' + }, + { + alias: 'confused', + unicode: '๐Ÿ˜•', + category: 'Smiley' + }, + { + alias: 'congo_brazzaville', + unicode: '๐Ÿ‡จ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'congo_kinshasa', + unicode: '๐Ÿ‡จ๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'congratulations', + unicode: 'ใŠ—๏ธ', + category: 'Symbol' + }, + { + alias: 'construction', + unicode: '๐Ÿšง', + category: 'Travel' + }, + { + alias: ['construction_worker_man', 'construction_worker'], + unicode: '๐Ÿ‘ท', + category: 'Person' + }, + { + alias: 'construction_worker_woman', + unicode: '๐Ÿ‘ทโ€โ™€', + category: 'Person' + }, + { + alias: 'control_knobs', + unicode: '๐ŸŽ›', + category: 'Object' + }, + { + alias: 'convenience_store', + unicode: '๐Ÿช', + category: 'Travel' + }, + { + alias: 'cook', + unicode: '๐Ÿง‘โ€๐Ÿณ', + category: 'Person' + }, + { + alias: 'cook_islands', + unicode: '๐Ÿ‡จ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'cookie', + unicode: '๐Ÿช', + category: 'Food' + }, + { + alias: 'cool', + unicode: '๐Ÿ†’', + category: 'Symbol' + }, + { + alias: 'copyright', + unicode: 'ยฉ๏ธ', + category: 'Symbol' + }, + { + alias: 'corn', + unicode: '๐ŸŒฝ', + category: 'Food' + }, + { + alias: 'costa_rica', + unicode: '๐Ÿ‡จ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'cote_divoire', + unicode: '๐Ÿ‡จ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'couch_and_lamp', + unicode: '๐Ÿ›‹', + category: 'Object' + }, + { + alias: 'couple', + unicode: '๐Ÿ‘ซ', + category: 'Person' + }, + { + alias: 'couple_with_heart_man_man', + unicode: '๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ', + category: 'Person' + }, + { + alias: ['couple_with_heart_woman_man', 'couple_with_heart'], + unicode: '๐Ÿ’‘', + category: 'Person' + }, + { + alias: 'couple_with_heart_woman_woman', + unicode: '๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ', + category: 'Person' + }, + { + alias: 'couplekiss', + unicode: '๐Ÿ’', + category: 'Person' + }, + { + alias: 'couplekiss_man_man', + unicode: '๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ', + category: 'Person' + }, + { + alias: 'couplekiss_man_woman', + unicode: '๐Ÿ’', + category: 'Person' + }, + { + alias: 'couplekiss_woman_woman', + unicode: '๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ', + category: 'Person' + }, + { + alias: 'cow', + unicode: '๐Ÿฎ', + category: 'Animal' + }, + { + alias: 'cow2', + unicode: '๐Ÿ„', + category: 'Animal' + }, + { + alias: 'cowboy_hat_face', + unicode: '๐Ÿค ', + category: 'Person' + }, + { + alias: 'crab', + unicode: '๐Ÿฆ€', + category: 'Animal' + }, + { + alias: 'crayon', + unicode: '๐Ÿ–', + category: 'Object' + }, + { + alias: 'credit_card', + unicode: '๐Ÿ’ณ', + category: 'Object' + }, + { + alias: 'crescent_moon', + unicode: '๐ŸŒ™', + category: 'Nature' + }, + { + alias: 'cricket', + unicode: '๐Ÿฆ—', + category: 'Animal' + }, + { + alias: 'cricket_game', + unicode: '๐Ÿ', + category: 'Activity' + }, + { + alias: 'croatia', + unicode: '๐Ÿ‡ญ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'crocodile', + unicode: '๐ŸŠ', + category: 'Animal' + }, + { + alias: 'croissant', + unicode: '๐Ÿฅ', + category: 'Food' + }, + { + alias: 'crossed_fingers', + unicode: '๐Ÿคž', + category: 'Gesture' + }, + { + alias: 'crossed_flags', + unicode: '๐ŸŽŒ', + category: 'Flag' + }, + { + alias: 'crossed_swords', + unicode: 'โš”๏ธ', + category: 'Object' + }, + { + alias: 'crown', + unicode: '๐Ÿ‘‘', + category: 'Object' + }, + { + alias: 'cry', + unicode: '๐Ÿ˜ข', + category: 'Smiley' + }, + { + alias: 'crying_cat_face', + unicode: '๐Ÿ˜ฟ', + category: 'Smiley' + }, + { + alias: 'crystal_ball', + unicode: '๐Ÿ”ฎ', + category: 'Object' + }, + { + alias: 'cuba', + unicode: '๐Ÿ‡จ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'cucumber', + unicode: '๐Ÿฅ’', + category: 'Food' + }, + { + alias: 'cup_with_straw', + unicode: '๐Ÿฅค', + category: 'Food' + }, + { + alias: 'cupcake', + unicode: '๐Ÿง', + category: 'Food' + }, + { + alias: 'cupid', + unicode: '๐Ÿ’˜', + category: 'Symbol' + }, + { + alias: 'curacao', + unicode: '๐Ÿ‡จ๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'curling_stone', + unicode: '๐ŸฅŒ', + category: 'Activity' + }, + { + alias: 'curly_haired_man', + unicode: '๐Ÿ‘จโ€๐Ÿฆฑ', + category: 'Person' + }, + { + alias: 'curly_haired_woman', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆฑ', + category: 'Person' + }, + { + alias: 'curly_loop', + unicode: 'โžฐ', + category: 'Symbol' + }, + { + alias: 'currency_exchange', + unicode: '๐Ÿ’ฑ', + category: 'Symbol' + }, + { + alias: 'curry', + unicode: '๐Ÿ›', + category: 'Food' + }, + { + alias: 'cursing_face', + unicode: '๐Ÿคฌ', + category: 'Smiley' + }, + { + alias: 'custard', + unicode: '๐Ÿฎ', + category: 'Food' + }, + { + alias: 'customs', + unicode: '๐Ÿ›ƒ', + category: 'Symbol' + }, + { + alias: 'cut_of_meat', + unicode: '๐Ÿฅฉ', + category: 'Food' + }, + { + alias: 'cyclone', + unicode: '๐ŸŒ€', + category: 'Nature' + }, + { + alias: 'cyprus', + unicode: '๐Ÿ‡จ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'czech_republic', + unicode: '๐Ÿ‡จ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'dagger', + unicode: '๐Ÿ—ก', + category: 'Object' + }, + { + alias: 'dancer', + unicode: '๐Ÿ’ƒ', + category: 'Person' + }, + { + alias: 'dancing_men', + unicode: '๐Ÿ‘ฏโ€โ™‚', + category: 'Person' + }, + { + alias: ['dancing_women', 'dancers'], + unicode: '๐Ÿ‘ฏ', + category: 'Person' + }, + { + alias: 'dango', + unicode: '๐Ÿก', + category: 'Food' + }, + { + alias: 'dark_sunglasses', + unicode: '๐Ÿ•ถ', + category: 'Object' + }, + { + alias: 'dart', + unicode: '๐ŸŽฏ', + category: 'Object' + }, + { + alias: 'dash', + unicode: '๐Ÿ’จ', + category: 'Nature' + }, + { + alias: 'date', + unicode: '๐Ÿ“…', + category: 'Object' + }, + { + alias: 'de', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'deaf_man', + unicode: '๐Ÿงโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'deaf_person', + unicode: '๐Ÿง', + category: 'Person' + }, + { + alias: 'deaf_woman', + unicode: '๐Ÿงโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'deciduous_tree', + unicode: '๐ŸŒณ', + category: 'Nature' + }, + { + alias: 'deer', + unicode: '๐ŸฆŒ', + category: 'Animal' + }, + { + alias: 'denmark', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'department_store', + unicode: '๐Ÿฌ', + category: 'Travel' + }, + { + alias: 'derelict_house', + unicode: '๐Ÿš', + category: 'Travel' + }, + { + alias: 'desert', + unicode: '๐Ÿœ', + category: 'Travel' + }, + { + alias: 'desert_island', + unicode: '๐Ÿ', + category: 'Travel' + }, + { + alias: 'desktop_computer', + unicode: '๐Ÿ–ฅ', + category: 'Object' + }, + { + alias: 'diamond_shape_with_a_dot_inside', + unicode: '๐Ÿ’ ', + category: 'Symbol' + }, + { + alias: 'diamonds', + unicode: 'โ™ฆ๏ธ', + category: 'Symbol' + }, + { + alias: 'diego_garcia', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'disappointed', + unicode: '๐Ÿ˜ž', + category: 'Smiley' + }, + { + alias: 'disappointed_relieved', + unicode: '๐Ÿ˜ฅ', + category: 'Smiley' + }, + { + alias: 'disguised_face', + unicode: '๐Ÿฅธ', + category: 'Smiley' + }, + { + alias: 'diving_mask', + unicode: '๐Ÿคฟ', + category: 'Activity' + }, + { + alias: 'diya_lamp', + unicode: '๐Ÿช”', + category: 'Object' + }, + { + alias: 'dizzy', + unicode: '๐Ÿ’ซ', + category: 'Nature' + }, + { + alias: 'dizzy_face', + unicode: '๐Ÿ˜ต', + category: 'Smiley' + }, + { + alias: 'djibouti', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ฏ', + category: 'Country' + }, + { + alias: 'dna', + unicode: '๐Ÿงฌ', + category: 'Object' + }, + { + alias: 'do_not_litter', + unicode: '๐Ÿšฏ', + category: 'Symbol' + }, + { + alias: 'dodo', + unicode: '๐Ÿฆค', + category: 'Animal' + }, + { + alias: 'dog', + unicode: '๐Ÿถ', + category: 'Animal' + }, + { + alias: 'dog2', + unicode: '๐Ÿ•', + category: 'Animal' + }, + { + alias: 'dollar', + unicode: '๐Ÿ’ต', + category: 'Object' + }, + { + alias: 'dolls', + unicode: '๐ŸŽŽ', + category: 'Object' + }, + { + alias: ['dolphin', 'flipper'], + unicode: '๐Ÿฌ', + category: 'Animal' + }, + { + alias: 'dominica', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'dominican_republic', + unicode: '๐Ÿ‡ฉ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'door', + unicode: '๐Ÿšช', + category: 'Object' + }, + { + alias: 'doughnut', + unicode: '๐Ÿฉ', + category: 'Food' + }, + { + alias: 'dove', + unicode: '๐Ÿ•Š', + category: 'Animal' + }, + { + alias: 'dragon', + unicode: '๐Ÿ‰', + category: 'Animal' + }, + { + alias: 'dragon_face', + unicode: '๐Ÿฒ', + category: 'Animal' + }, + { + alias: 'dress', + unicode: '๐Ÿ‘—', + category: 'Object' + }, + { + alias: 'dromedary_camel', + unicode: '๐Ÿช', + category: 'Animal' + }, + { + alias: 'drooling_face', + unicode: '๐Ÿคค', + category: 'Smiley' + }, + { + alias: 'drop_of_blood', + unicode: '๐Ÿฉธ', + category: 'Object' + }, + { + alias: 'droplet', + unicode: '๐Ÿ’ง', + category: 'Nature' + }, + { + alias: 'drum', + unicode: '๐Ÿฅ', + category: 'Activity' + }, + { + alias: 'duck', + unicode: '๐Ÿฆ†', + category: 'Animal' + }, + { + alias: 'dumpling', + unicode: '๐ŸฅŸ', + category: 'Food' + }, + { + alias: 'dvd', + unicode: '๐Ÿ“€', + category: 'Object' + }, + { + alias: 'e-mail', + unicode: '๐Ÿ“ง', + category: 'Object' + }, + { + alias: 'eagle', + unicode: '๐Ÿฆ…', + category: 'Animal' + }, + { + alias: 'ear', + unicode: '๐Ÿ‘‚', + category: 'Person' + }, + { + alias: 'ear_of_rice', + unicode: '๐ŸŒพ', + category: 'Nature' + }, + { + alias: 'ear_with_hearing_aid', + unicode: '๐Ÿฆป', + category: 'Person' + }, + { + alias: 'earth_africa', + unicode: '๐ŸŒ', + category: 'Nature' + }, + { + alias: 'earth_americas', + unicode: '๐ŸŒŽ', + category: 'Nature' + }, + { + alias: 'earth_asia', + unicode: '๐ŸŒ', + category: 'Nature' + }, + { + alias: 'ecuador', + unicode: '๐Ÿ‡ช๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'egg', + unicode: '๐Ÿฅš', + category: 'Food' + }, + { + alias: 'eggplant', + unicode: '๐Ÿ†', + category: 'Food' + }, + { + alias: 'egypt', + unicode: '๐Ÿ‡ช๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'eight', + unicode: '8๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'eight_pointed_black_star', + unicode: 'โœด๏ธ', + category: 'Symbol' + }, + { + alias: 'eight_spoked_asterisk', + unicode: 'โœณ๏ธ', + category: 'Symbol' + }, + { + alias: 'eject_button', + unicode: 'โ๏ธ', + category: 'Symbol' + }, + { + alias: 'el_salvador', + unicode: '๐Ÿ‡ธ๐Ÿ‡ป', + category: 'Country' + }, + { + alias: 'electric_plug', + unicode: '๐Ÿ”Œ', + category: 'Object' + }, + { + alias: 'electron', + unicode: false, + category: 'Custom' + }, + { + alias: 'elephant', + unicode: '๐Ÿ˜', + category: 'Animal' + }, + { + alias: 'elevator', + unicode: '๐Ÿ›—', + category: 'Symbol' + }, + { + alias: 'elf', + unicode: '๐Ÿง', + category: 'Person' + }, + { + alias: 'elf_man', + unicode: '๐Ÿงโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'elf_woman', + unicode: '๐Ÿงโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: ['email', 'envelope'], + unicode: 'โœ‰๏ธ', + category: 'Object' + }, + { + alias: 'end', + unicode: '๐Ÿ”š', + category: 'Symbol' + }, + { + alias: 'england', + unicode: '๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ', + category: 'Country' + }, + { + alias: 'envelope_with_arrow', + unicode: '๐Ÿ“ฉ', + category: 'Object' + }, + { + alias: 'equatorial_guinea', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ถ', + category: 'Country' + }, + { + alias: 'eritrea', + unicode: '๐Ÿ‡ช๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'es', + unicode: '๐Ÿ‡ช๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'estonia', + unicode: '๐Ÿ‡ช๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'ethiopia', + unicode: '๐Ÿ‡ช๐Ÿ‡น', + category: 'Country' + }, + { + alias: ['eu', 'european_union'], + unicode: '๐Ÿ‡ช๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'euro', + unicode: '๐Ÿ’ถ', + category: 'Object' + }, + { + alias: 'european_castle', + unicode: '๐Ÿฐ', + category: 'Travel' + }, + { + alias: 'european_post_office', + unicode: '๐Ÿค', + category: 'Travel' + }, + { + alias: 'evergreen_tree', + unicode: '๐ŸŒฒ', + category: 'Nature' + }, + { + alias: ['exclamation', 'heavy_exclamation_mark'], + unicode: 'โ—๏ธ', + category: 'Symbol' + }, + { + alias: 'exploding_head', + unicode: '๐Ÿคฏ', + category: 'Smiley' + }, + { + alias: 'expressionless', + unicode: '๐Ÿ˜‘', + category: 'Smiley' + }, + { + alias: 'eye', + unicode: '๐Ÿ‘', + category: 'Person' + }, + { + alias: 'eye_speech_bubble', + unicode: '๐Ÿ‘โ€๐Ÿ—จ', + category: 'Symbol' + }, + { + alias: 'eyeglasses', + unicode: '๐Ÿ‘“', + category: 'Object' + }, + { + alias: 'eyes', + unicode: '๐Ÿ‘€', + category: 'Person' + }, + { + alias: 'face_exhaling', + unicode: '๐Ÿ˜ฎโ€๐Ÿ’จ', + category: 'Smiley' + }, + { + alias: 'face_in_clouds', + unicode: '๐Ÿ˜ถโ€๐ŸŒซ๏ธ', + category: 'Smiley' + }, + { + alias: 'face_with_head_bandage', + unicode: '๐Ÿค•', + category: 'Smiley' + }, + { + alias: 'face_with_spiral_eyes', + unicode: '๐Ÿ˜ตโ€๐Ÿ’ซ', + category: 'Smiley' + }, + { + alias: 'face_with_thermometer', + unicode: '๐Ÿค’', + category: 'Smiley' + }, + { + alias: 'facepalm', + unicode: '๐Ÿคฆ', + category: 'Person' + }, + { + alias: 'factory', + unicode: '๐Ÿญ', + category: 'Travel' + }, + { + alias: 'factory_worker', + unicode: '๐Ÿง‘โ€๐Ÿญ', + category: 'Person' + }, + { + alias: 'fairy', + unicode: '๐Ÿงš', + category: 'Person' + }, + { + alias: 'fairy_man', + unicode: '๐Ÿงšโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'fairy_woman', + unicode: '๐Ÿงšโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'falafel', + unicode: '๐Ÿง†', + category: 'Food' + }, + { + alias: 'falkland_islands', + unicode: '๐Ÿ‡ซ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'fallen_leaf', + unicode: '๐Ÿ‚', + category: 'Nature' + }, + { + alias: 'family_man_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_boy_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_girl', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_man_girl_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_girl_girl', + unicode: '๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_man_man_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_man_boy_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_man_girl', + unicode: '๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_man_man_girl_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_man_girl_girl', + unicode: '๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: ['family_man_woman_boy', 'family'], + unicode: '๐Ÿ‘ช', + category: 'Person' + }, + { + alias: 'family_man_woman_boy_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_woman_girl', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_man_woman_girl_boy', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_man_woman_girl_girl', + unicode: '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_woman_boy', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_woman_boy_boy', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_woman_girl', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_woman_girl_boy', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_woman_girl_girl', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_woman_woman_boy', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_woman_woman_boy_boy', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_woman_woman_girl', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'family_woman_woman_girl_boy', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', + category: 'Person' + }, + { + alias: 'family_woman_woman_girl_girl', + unicode: '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'farmer', + unicode: '๐Ÿง‘โ€๐ŸŒพ', + category: 'Person' + }, + { + alias: 'faroe_islands', + unicode: '๐Ÿ‡ซ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'fast_forward', + unicode: 'โฉ', + category: 'Symbol' + }, + { + alias: 'fax', + unicode: '๐Ÿ“ ', + category: 'Object' + }, + { + alias: 'fearful', + unicode: '๐Ÿ˜จ', + category: 'Smiley' + }, + { + alias: 'feather', + unicode: '๐Ÿชถ', + category: 'Nature' + }, + { + alias: 'feelsgood', + unicode: false, + category: 'Custom' + }, + { + alias: ['feet', 'paw_prints'], + unicode: '๐Ÿพ', + category: 'Animal' + }, + { + alias: 'female_detective', + unicode: '๐Ÿ•ต๏ธโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'female_sign', + unicode: 'โ™€๏ธ', + category: 'Symbol' + }, + { + alias: 'ferris_wheel', + unicode: '๐ŸŽก', + category: 'Travel' + }, + { + alias: 'ferry', + unicode: 'โ›ด', + category: 'Travel' + }, + { + alias: 'field_hockey', + unicode: '๐Ÿ‘', + category: 'Activity' + }, + { + alias: 'fiji', + unicode: '๐Ÿ‡ซ๐Ÿ‡ฏ', + category: 'Country' + }, + { + alias: 'file_cabinet', + unicode: '๐Ÿ—„', + category: 'Object' + }, + { + alias: 'file_folder', + unicode: '๐Ÿ“', + category: 'Object' + }, + { + alias: 'film_projector', + unicode: '๐Ÿ“ฝ', + category: 'Object' + }, + { + alias: 'film_strip', + unicode: '๐ŸŽž', + category: 'Object' + }, + { + alias: 'finland', + unicode: '๐Ÿ‡ซ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'finnadie', + unicode: false, + category: 'Custom' + }, + { + alias: 'fire', + unicode: '๐Ÿ”ฅ', + category: 'Nature' + }, + { + alias: 'fire_engine', + unicode: '๐Ÿš’', + category: 'Travel' + }, + { + alias: 'fire_extinguisher', + unicode: '๐Ÿงฏ', + category: 'Object' + }, + { + alias: 'firecracker', + unicode: '๐Ÿงจ', + category: 'Object' + }, + { + alias: 'firefighter', + unicode: '๐Ÿง‘โ€๐Ÿš’', + category: 'Person' + }, + { + alias: 'fireworks', + unicode: '๐ŸŽ†', + category: 'Object' + }, + { + alias: 'first_quarter_moon', + unicode: '๐ŸŒ“', + category: 'Nature' + }, + { + alias: 'first_quarter_moon_with_face', + unicode: '๐ŸŒ›', + category: 'Nature' + }, + { + alias: 'fish', + unicode: '๐ŸŸ', + category: 'Animal' + }, + { + alias: 'fish_cake', + unicode: '๐Ÿฅ', + category: 'Food' + }, + { + alias: 'fishing_pole_and_fish', + unicode: '๐ŸŽฃ', + category: 'Activity' + }, + { + alias: 'fist_left', + unicode: '๐Ÿค›', + category: 'Gesture' + }, + { + alias: ['fist_oncoming', 'facepunch', 'punch'], + unicode: '๐Ÿ‘Š', + category: 'Gesture' + }, + { + alias: ['fist_raised', 'fist'], + unicode: 'โœŠ', + category: 'Gesture' + }, + { + alias: 'fist_right', + unicode: '๐Ÿคœ', + category: 'Gesture' + }, + { + alias: 'five', + unicode: '5๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'flags', + unicode: '๐ŸŽ', + category: 'Object' + }, + { + alias: 'flamingo', + unicode: '๐Ÿฆฉ', + category: 'Food' + }, + { + alias: 'flashlight', + unicode: '๐Ÿ”ฆ', + category: 'Object' + }, + { + alias: 'flat_shoe', + unicode: '๐Ÿฅฟ', + category: 'Clothing' + }, + { + alias: 'flatbread', + unicode: '๐Ÿซ“', + category: 'Food' + }, + { + alias: 'fleur_de_lis', + unicode: 'โšœ๏ธ', + category: 'Symbol' + }, + { + alias: 'flight_arrival', + unicode: '๐Ÿ›ฌ', + category: 'Travel' + }, + { + alias: 'flight_departure', + unicode: '๐Ÿ›ซ', + category: 'Travel' + }, + { + alias: 'floppy_disk', + unicode: '๐Ÿ’พ', + category: 'Object' + }, + { + alias: 'flower_playing_cards', + unicode: '๐ŸŽด', + category: 'Object' + }, + { + alias: 'flushed', + unicode: '๐Ÿ˜ณ', + category: 'Smiley' + }, + { + alias: 'fly', + unicode: '๐Ÿชฐ', + category: 'Animal' + }, + { + alias: 'flying_disc', + unicode: '๐Ÿฅ', + category: 'Activity' + }, + { + alias: 'flying_saucer', + unicode: '๐Ÿ›ธ', + category: 'Object' + }, + { + alias: 'fog', + unicode: '๐ŸŒซ', + category: 'Nature' + }, + { + alias: 'foggy', + unicode: '๐ŸŒ', + category: 'Nature' + }, + { + alias: 'fondue', + unicode: '๐Ÿซ•', + category: 'Food' + }, + { + alias: 'foot', + unicode: '๐Ÿฆถ', + category: 'Person' + }, + { + alias: 'football', + unicode: '๐Ÿˆ', + category: 'Activity' + }, + { + alias: 'footprints', + unicode: '๐Ÿ‘ฃ', + category: 'Person' + }, + { + alias: 'fork_and_knife', + unicode: '๐Ÿด', + category: 'Food' + }, + { + alias: 'fortune_cookie', + unicode: '๐Ÿฅ ', + category: 'Food' + }, + { + alias: 'fountain', + unicode: 'โ›ฒ๏ธ', + category: 'Travel' + }, + { + alias: 'fountain_pen', + unicode: '๐Ÿ–‹', + category: 'Object' + }, + { + alias: 'four', + unicode: '4๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'four_leaf_clover', + unicode: '๐Ÿ€', + category: 'Nature' + }, + { + alias: 'fox_face', + unicode: '๐ŸฆŠ', + category: 'Animal' + }, + { + alias: 'fr', + unicode: '๐Ÿ‡ซ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'framed_picture', + unicode: '๐Ÿ–ผ', + category: 'Object' + }, + { + alias: 'free', + unicode: '๐Ÿ†“', + category: 'Symbol' + }, + { + alias: 'french_guiana', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'french_polynesia', + unicode: '๐Ÿ‡ต๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'french_southern_territories', + unicode: '๐Ÿ‡น๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'fried_egg', + unicode: '๐Ÿณ', + category: 'Food' + }, + { + alias: 'fried_shrimp', + unicode: '๐Ÿค', + category: 'Food' + }, + { + alias: 'fries', + unicode: '๐ŸŸ', + category: 'Food' + }, + { + alias: 'frog', + unicode: '๐Ÿธ', + category: 'Animal' + }, + { + alias: 'frowning', + unicode: '๐Ÿ˜ฆ', + category: 'Smiley' + }, + { + alias: 'frowning_face', + unicode: 'โ˜น๏ธ', + category: 'Smiley' + }, + { + alias: 'frowning_man', + unicode: '๐Ÿ™โ€โ™‚', + category: 'Person' + }, + { + alias: 'frowning_person', + unicode: '๐Ÿ™', + category: 'Person' + }, + { + alias: 'frowning_woman', + unicode: '๐Ÿ™', + category: 'Person' + }, + { + alias: 'fuelpump', + unicode: 'โ›ฝ๏ธ', + category: 'Travel' + }, + { + alias: 'full_moon', + unicode: '๐ŸŒ•', + category: 'Nature' + }, + { + alias: 'full_moon_with_face', + unicode: '๐ŸŒ', + category: 'Nature' + }, + { + alias: 'funeral_urn', + unicode: 'โšฑ๏ธ', + category: 'Object' + }, + { + alias: 'gabon', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'gambia', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'game_die', + unicode: '๐ŸŽฒ', + category: 'Activity' + }, + { + alias: 'garlic', + unicode: '๐Ÿง„', + category: 'Food' + }, + { + alias: ['gb', 'uk'], + unicode: '๐Ÿ‡ฌ๐Ÿ‡ง', + category: 'Country' + }, + { + alias: 'gear', + unicode: 'โš™๏ธ', + category: 'Object' + }, + { + alias: 'gem', + unicode: '๐Ÿ’Ž', + category: 'Object' + }, + { + alias: 'gemini', + unicode: 'โ™Š๏ธ', + category: 'Symbol' + }, + { + alias: 'genie', + unicode: '๐Ÿงž', + category: 'Person' + }, + { + alias: 'genie_man', + unicode: '๐Ÿงžโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'genie_woman', + unicode: '๐Ÿงžโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'georgia', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'ghana', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'ghost', + unicode: '๐Ÿ‘ป', + category: 'Person' + }, + { + alias: 'gibraltar', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'gift', + unicode: '๐ŸŽ', + category: 'Object' + }, + { + alias: 'gift_heart', + unicode: '๐Ÿ’', + category: 'Object' + }, + { + alias: 'giraffe', + unicode: '๐Ÿฆ’', + category: 'Animal' + }, + { + alias: 'girl', + unicode: '๐Ÿ‘ง', + category: 'Person' + }, + { + alias: 'globe_with_meridians', + unicode: '๐ŸŒ', + category: 'Nature' + }, + { + alias: 'gloves', + unicode: '๐Ÿงค', + category: 'Clothing' + }, + { + alias: 'goal_net', + unicode: '๐Ÿฅ…', + category: 'Activity' + }, + { + alias: 'goat', + unicode: '๐Ÿ', + category: 'Animal' + }, + { + alias: 'goberserk', + unicode: false, + category: 'Custom' + }, + { + alias: 'godmode', + unicode: false, + category: 'Custom' + }, + { + alias: 'goggles', + unicode: '๐Ÿฅฝ', + category: 'Activity' + }, + { + alias: 'golf', + unicode: 'โ›ณ๏ธ', + category: 'Activity' + }, + { + alias: 'golfing', + unicode: '๐ŸŒ๏ธ', + category: 'Activity' + }, + { + alias: 'golfing_man', + unicode: '๐ŸŒ', + category: 'Activity' + }, + { + alias: 'golfing_woman', + unicode: '๐ŸŒ๏ธโ€โ™€๏ธ', + category: 'Activity' + }, + { + alias: 'gorilla', + unicode: '๐Ÿฆ', + category: 'Animal' + }, + { + alias: 'grapes', + unicode: '๐Ÿ‡', + category: 'Food' + }, + { + alias: 'greece', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'green_apple', + unicode: '๐Ÿ', + category: 'Food' + }, + { + alias: 'green_book', + unicode: '๐Ÿ“—', + category: 'Object' + }, + { + alias: 'green_circle', + unicode: '๐ŸŸข', + category: 'Symbol' + }, + { + alias: 'green_heart', + unicode: '๐Ÿ’š', + category: 'Symbol' + }, + { + alias: 'green_salad', + unicode: '๐Ÿฅ—', + category: 'Food' + }, + { + alias: 'green_square', + unicode: '๐ŸŸฉ', + category: 'Symbol' + }, + { + alias: 'greenland', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'grenada', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'grey_exclamation', + unicode: 'โ•', + category: 'Symbol' + }, + { + alias: 'grey_question', + unicode: 'โ”', + category: 'Symbol' + }, + { + alias: 'grimacing', + unicode: '๐Ÿ˜ฌ', + category: 'Smiley' + }, + { + alias: 'grin', + unicode: '๐Ÿ˜', + category: 'Smiley' + }, + { + alias: 'grinning', + unicode: '๐Ÿ˜€', + category: 'Smiley' + }, + { + alias: 'guadeloupe', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ต', + category: 'Country' + }, + { + alias: 'guam', + unicode: '๐Ÿ‡ฌ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'guard', + unicode: '๐Ÿ’‚', + category: 'Person' + }, + { + alias: 'guardsman', + unicode: '๐Ÿ’‚', + category: 'Person' + }, + { + alias: 'guardswoman', + unicode: '๐Ÿ’‚โ€โ™€', + category: 'Person' + }, + { + alias: 'guatemala', + unicode: '๐Ÿ‡ฌ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'guernsey', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'guide_dog', + unicode: '๐Ÿฆฎ', + category: 'Animal' + }, + { + alias: 'guinea', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'guinea_bissau', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'guitar', + unicode: '๐ŸŽธ', + category: 'Activity' + }, + { + alias: 'gun', + unicode: '๐Ÿ”ซ', + category: 'Object' + }, + { + alias: 'guyana', + unicode: '๐Ÿ‡ฌ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'haircut_man', + unicode: '๐Ÿ’‡โ€โ™‚', + category: 'Person' + }, + { + alias: ['haircut_woman', 'haircut'], + unicode: '๐Ÿ’‡', + category: 'Person' + }, + { + alias: 'haiti', + unicode: '๐Ÿ‡ญ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'hamburger', + unicode: '๐Ÿ”', + category: 'Food' + }, + { + alias: 'hammer', + unicode: '๐Ÿ”จ', + category: 'Object' + }, + { + alias: 'hammer_and_pick', + unicode: 'โš’', + category: 'Object' + }, + { + alias: 'hammer_and_wrench', + unicode: '๐Ÿ› ', + category: 'Object' + }, + { + alias: 'hamster', + unicode: '๐Ÿน', + category: 'Animal' + }, + { + alias: ['hand', 'raised_hand'], + unicode: 'โœ‹', + category: 'Gesture' + }, + { + alias: 'hand_over_mouth', + unicode: '๐Ÿคญ', + category: 'Smiley' + }, + { + alias: 'handbag', + unicode: '๐Ÿ‘œ', + category: 'Object' + }, + { + alias: 'handball_person', + unicode: '๐Ÿคพ', + category: 'Activity' + }, + { + alias: 'handshake', + unicode: '๐Ÿค', + category: 'Gesture' + }, + { + alias: ['hankey', 'poop', 'shit'], + unicode: '๐Ÿ’ฉ', + category: 'Person' + }, + { + alias: 'hash', + unicode: '#๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'hatched_chick', + unicode: '๐Ÿฅ', + category: 'Animal' + }, + { + alias: 'hatching_chick', + unicode: '๐Ÿฃ', + category: 'Animal' + }, + { + alias: 'headphones', + unicode: '๐ŸŽง', + category: 'Activity' + }, + { + alias: 'headstone', + unicode: '๐Ÿชฆ', + category: 'Object' + }, + { + alias: 'health_worker', + unicode: '๐Ÿง‘โ€โš•๏ธ', + category: 'Person' + }, + { + alias: 'hear_no_evil', + unicode: '๐Ÿ™‰', + category: 'Animal' + }, + { + alias: 'heard_mcdonald_islands', + unicode: '๐Ÿ‡ญ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'heart', + unicode: 'โค๏ธ', + category: 'Symbol' + }, + { + alias: 'heart_decoration', + unicode: '๐Ÿ’Ÿ', + category: 'Symbol' + }, + { + alias: 'heart_eyes', + unicode: '๐Ÿ˜', + category: 'Smiley' + }, + { + alias: 'heart_eyes_cat', + unicode: '๐Ÿ˜ป', + category: 'Smiley' + }, + { + alias: 'heart_on_fire', + unicode: 'โค๏ธโ€๐Ÿ”ฅ', + category: 'Symbol' + }, + { + alias: 'heartbeat', + unicode: '๐Ÿ’“', + category: 'Symbol' + }, + { + alias: 'heartpulse', + unicode: '๐Ÿ’—', + category: 'Symbol' + }, + { + alias: 'hearts', + unicode: 'โ™ฅ๏ธ', + category: 'Symbol' + }, + { + alias: 'heavy_check_mark', + unicode: 'โœ”๏ธ', + category: 'Symbol' + }, + { + alias: 'heavy_division_sign', + unicode: 'โž—', + category: 'Symbol' + }, + { + alias: 'heavy_dollar_sign', + unicode: '๐Ÿ’ฒ', + category: 'Symbol' + }, + { + alias: 'heavy_heart_exclamation', + unicode: 'โฃ๏ธ', + category: 'Symbol' + }, + { + alias: 'heavy_minus_sign', + unicode: 'โž–', + category: 'Symbol' + }, + { + alias: 'heavy_multiplication_x', + unicode: 'โœ–๏ธ', + category: 'Symbol' + }, + { + alias: 'heavy_plus_sign', + unicode: 'โž•', + category: 'Symbol' + }, + { + alias: 'hedgehog', + unicode: '๐Ÿฆ”', + category: 'Animal' + }, + { + alias: 'helicopter', + unicode: '๐Ÿš', + category: 'Travel' + }, + { + alias: 'herb', + unicode: '๐ŸŒฟ', + category: 'Nature' + }, + { + alias: 'hibiscus', + unicode: '๐ŸŒบ', + category: 'Nature' + }, + { + alias: 'high_brightness', + unicode: '๐Ÿ”†', + category: 'Object' + }, + { + alias: 'high_heel', + unicode: '๐Ÿ‘ ', + category: 'Object' + }, + { + alias: 'hiking_boot', + unicode: '๐Ÿฅพ', + category: 'Clothing' + }, + { + alias: 'hindu_temple', + unicode: '๐Ÿ›•', + category: 'Travel' + }, + { + alias: 'hippopotamus', + unicode: '๐Ÿฆ›', + category: 'Animal' + }, + { + alias: ['hocho', 'knife'], + unicode: '๐Ÿ”ช', + category: 'Object' + }, + { + alias: 'hole', + unicode: '๐Ÿ•ณ', + category: 'Object' + }, + { + alias: 'honduras', + unicode: '๐Ÿ‡ญ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'honey_pot', + unicode: '๐Ÿฏ', + category: 'Food' + }, + { + alias: 'hong_kong', + unicode: '๐Ÿ‡ญ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'hook', + unicode: '๐Ÿช', + category: 'Object' + }, + { + alias: 'horse', + unicode: '๐Ÿด', + category: 'Animal' + }, + { + alias: 'horse_racing', + unicode: '๐Ÿ‡', + category: 'Activity' + }, + { + alias: 'hospital', + unicode: '๐Ÿฅ', + category: 'Travel' + }, + { + alias: 'hot_face', + unicode: '๐Ÿฅต', + category: 'Smiley' + }, + { + alias: 'hot_pepper', + unicode: '๐ŸŒถ', + category: 'Food' + }, + { + alias: 'hotdog', + unicode: '๐ŸŒญ', + category: 'Food' + }, + { + alias: 'hotel', + unicode: '๐Ÿจ', + category: 'Travel' + }, + { + alias: 'hotsprings', + unicode: 'โ™จ๏ธ', + category: 'Symbol' + }, + { + alias: 'hourglass', + unicode: 'โŒ›๏ธ', + category: 'Object' + }, + { + alias: 'hourglass_flowing_sand', + unicode: 'โณ', + category: 'Object' + }, + { + alias: 'house', + unicode: '๐Ÿ ', + category: 'Travel' + }, + { + alias: 'house_with_garden', + unicode: '๐Ÿก', + category: 'Travel' + }, + { + alias: 'houses', + unicode: '๐Ÿ˜', + category: 'Travel' + }, + { + alias: 'hugs', + unicode: '๐Ÿค—', + category: 'Smiley' + }, + { + alias: 'hungary', + unicode: '๐Ÿ‡ญ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'hurtrealbad', + unicode: false, + category: 'Custom' + }, + { + alias: 'hushed', + unicode: '๐Ÿ˜ฏ', + category: 'Smiley' + }, + { + alias: 'hut', + unicode: '๐Ÿ›–', + category: 'Travel' + }, + { + alias: 'ice_cream', + unicode: '๐Ÿจ', + category: 'Food' + }, + { + alias: 'ice_cube', + unicode: '๐ŸงŠ', + category: 'Food' + }, + { + alias: 'ice_hockey', + unicode: '๐Ÿ’', + category: 'Activity' + }, + { + alias: 'ice_skate', + unicode: 'โ›ธ', + category: 'Activity' + }, + { + alias: 'icecream', + unicode: '๐Ÿฆ', + category: 'Food' + }, + { + alias: 'iceland', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'id', + unicode: '๐Ÿ†”', + category: 'Symbol' + }, + { + alias: 'ideograph_advantage', + unicode: '๐Ÿ‰', + category: 'Symbol' + }, + { + alias: 'imp', + unicode: '๐Ÿ‘ฟ', + category: 'Smiley' + }, + { + alias: 'inbox_tray', + unicode: '๐Ÿ“ฅ', + category: 'Object' + }, + { + alias: 'incoming_envelope', + unicode: '๐Ÿ“จ', + category: 'Object' + }, + { + alias: 'india', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'indonesia', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'infinity', + unicode: 'โ™พ๏ธ', + category: 'Symbol' + }, + { + alias: 'information_source', + unicode: 'โ„น๏ธ', + category: 'Symbol' + }, + { + alias: 'innocent', + unicode: '๐Ÿ˜‡', + category: 'Smiley' + }, + { + alias: 'interrobang', + unicode: 'โ‰๏ธ', + category: 'Symbol' + }, + { + alias: 'iphone', + unicode: '๐Ÿ“ฑ', + category: 'Object' + }, + { + alias: 'iran', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'iraq', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ถ', + category: 'Country' + }, + { + alias: 'ireland', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'isle_of_man', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'israel', + unicode: '๐Ÿ‡ฎ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'it', + unicode: '๐Ÿ‡ฎ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'jack_o_lantern', + unicode: '๐ŸŽƒ', + category: 'Person' + }, + { + alias: 'jamaica', + unicode: '๐Ÿ‡ฏ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'japan', + unicode: '๐Ÿ—พ', + category: 'Travel' + }, + { + alias: 'japanese_castle', + unicode: '๐Ÿฏ', + category: 'Travel' + }, + { + alias: 'japanese_goblin', + unicode: '๐Ÿ‘บ', + category: 'Person' + }, + { + alias: 'japanese_ogre', + unicode: '๐Ÿ‘น', + category: 'Person' + }, + { + alias: 'jeans', + unicode: '๐Ÿ‘–', + category: 'Object' + }, + { + alias: 'jersey', + unicode: '๐Ÿ‡ฏ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'jigsaw', + unicode: '๐Ÿงฉ', + category: 'Object' + }, + { + alias: 'jordan', + unicode: '๐Ÿ‡ฏ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'joy', + unicode: '๐Ÿ˜‚', + category: 'Smiley' + }, + { + alias: 'joy_cat', + unicode: '๐Ÿ˜น', + category: 'Smiley' + }, + { + alias: 'joystick', + unicode: '๐Ÿ•น', + category: 'Object' + }, + { + alias: 'jp', + unicode: '๐Ÿ‡ฏ๐Ÿ‡ต', + category: 'Country' + }, + { + alias: 'judge', + unicode: '๐Ÿง‘โ€โš–๏ธ', + category: 'Person' + }, + { + alias: 'juggling_person', + unicode: '๐Ÿคน', + category: 'Person' + }, + { + alias: 'kaaba', + unicode: '๐Ÿ•‹', + category: 'Object' + }, + { + alias: 'kangaroo', + unicode: '๐Ÿฆ˜', + category: 'Animal' + }, + { + alias: 'kazakhstan', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'kenya', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'key', + unicode: '๐Ÿ”‘', + category: 'Object' + }, + { + alias: 'keyboard', + unicode: 'โŒจ๏ธ', + category: 'Object' + }, + { + alias: 'keycap_ten', + unicode: '๐Ÿ”Ÿ', + category: 'Symbol' + }, + { + alias: 'kick_scooter', + unicode: '๐Ÿ›ด', + category: 'Travel' + }, + { + alias: 'kimono', + unicode: '๐Ÿ‘˜', + category: 'Object' + }, + { + alias: 'kiribati', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'kiss', + unicode: '๐Ÿ’‹', + category: 'Person' + }, + { + alias: 'kissing', + unicode: '๐Ÿ˜—', + category: 'Smiley' + }, + { + alias: 'kissing_cat', + unicode: '๐Ÿ˜ฝ', + category: 'Smiley' + }, + { + alias: 'kissing_closed_eyes', + unicode: '๐Ÿ˜š', + category: 'Smiley' + }, + { + alias: 'kissing_heart', + unicode: '๐Ÿ˜˜', + category: 'Smiley' + }, + { + alias: 'kissing_smiling_eyes', + unicode: '๐Ÿ˜™', + category: 'Smiley' + }, + { + alias: 'kite', + unicode: '๐Ÿช', + category: 'Object' + }, + { + alias: 'kiwi_fruit', + unicode: '๐Ÿฅ', + category: 'Food' + }, + { + alias: 'kneeling_man', + unicode: '๐ŸงŽโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'kneeling_person', + unicode: '๐ŸงŽ', + category: 'Person' + }, + { + alias: 'kneeling_woman', + unicode: '๐ŸงŽโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'knot', + unicode: '๐Ÿชข', + category: 'Object' + }, + { + alias: 'koala', + unicode: '๐Ÿจ', + category: 'Animal' + }, + { + alias: 'koko', + unicode: '๐Ÿˆ', + category: 'Symbol' + }, + { + alias: 'kosovo', + unicode: '๐Ÿ‡ฝ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'kr', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'kuwait', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'kyrgyzstan', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'lab_coat', + unicode: '๐Ÿฅผ', + category: 'Clothing' + }, + { + alias: 'label', + unicode: '๐Ÿท', + category: 'Object' + }, + { + alias: 'lacrosse', + unicode: '๐Ÿฅ', + category: 'Activity' + }, + { + alias: 'ladder', + unicode: '๐Ÿชœ', + category: 'Object' + }, + { + alias: 'lady_beetle', + unicode: '๐Ÿž', + category: 'Animal' + }, + { + alias: ['lantern', 'izakaya_lantern'], + unicode: '๐Ÿฎ', + category: 'Object' + }, + { + alias: 'laos', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'large_blue_circle', + unicode: '๐Ÿ”ต', + category: 'Symbol' + }, + { + alias: 'large_blue_diamond', + unicode: '๐Ÿ”ท', + category: 'Symbol' + }, + { + alias: 'large_orange_diamond', + unicode: '๐Ÿ”ถ', + category: 'Symbol' + }, + { + alias: 'last_quarter_moon', + unicode: '๐ŸŒ—', + category: 'Nature' + }, + { + alias: 'last_quarter_moon_with_face', + unicode: '๐ŸŒœ', + category: 'Nature' + }, + { + alias: 'latin_cross', + unicode: 'โœ๏ธ', + category: 'Symbol' + }, + { + alias: 'latvia', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ป', + category: 'Country' + }, + { + alias: ['laughing', 'satisfied'], + unicode: '๐Ÿ˜†', + category: 'Smiley' + }, + { + alias: 'leafy_green', + unicode: '๐Ÿฅฌ', + category: 'Food' + }, + { + alias: 'leaves', + unicode: '๐Ÿƒ', + category: 'Nature' + }, + { + alias: 'lebanon', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ง', + category: 'Country' + }, + { + alias: 'ledger', + unicode: '๐Ÿ“’', + category: 'Object' + }, + { + alias: 'left_luggage', + unicode: '๐Ÿ›…', + category: 'Symbol' + }, + { + alias: 'left_right_arrow', + unicode: 'โ†”๏ธ', + category: 'Symbol' + }, + { + alias: 'left_speech_bubble', + unicode: '๐Ÿ—จ๏ธ', + category: 'Symbol' + }, + { + alias: 'leftwards_arrow_with_hook', + unicode: 'โ†ฉ๏ธ', + category: 'Symbol' + }, + { + alias: 'leg', + unicode: '๐Ÿฆต', + category: 'Person' + }, + { + alias: 'lemon', + unicode: '๐Ÿ‹', + category: 'Food' + }, + { + alias: 'leo', + unicode: 'โ™Œ๏ธ', + category: 'Symbol' + }, + { + alias: 'leopard', + unicode: '๐Ÿ†', + category: 'Animal' + }, + { + alias: 'lesotho', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'level_slider', + unicode: '๐ŸŽš', + category: 'Object' + }, + { + alias: 'liberia', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'libra', + unicode: 'โ™Ž๏ธ', + category: 'Symbol' + }, + { + alias: 'libya', + unicode: '๐Ÿ‡ฑ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'liechtenstein', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'light_rail', + unicode: '๐Ÿšˆ', + category: 'Travel' + }, + { + alias: 'link', + unicode: '๐Ÿ”—', + category: 'Symbol' + }, + { + alias: 'lion', + unicode: '๐Ÿฆ', + category: 'Animal' + }, + { + alias: 'lips', + unicode: '๐Ÿ‘„', + category: 'Person' + }, + { + alias: 'lipstick', + unicode: '๐Ÿ’„', + category: 'Object' + }, + { + alias: 'lithuania', + unicode: '๐Ÿ‡ฑ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'lizard', + unicode: '๐ŸฆŽ', + category: 'Animal' + }, + { + alias: 'llama', + unicode: '๐Ÿฆ™', + category: 'Animal' + }, + { + alias: 'lobster', + unicode: '๐Ÿฆž', + category: 'Animal' + }, + { + alias: 'lock', + unicode: '๐Ÿ”’', + category: 'Object' + }, + { + alias: 'lock_with_ink_pen', + unicode: '๐Ÿ”', + category: 'Object' + }, + { + alias: 'lollipop', + unicode: '๐Ÿญ', + category: 'Food' + }, + { + alias: 'long_drum', + unicode: '๐Ÿช˜', + category: 'Activity' + }, + { + alias: 'loop', + unicode: 'โžฟ', + category: 'Object' + }, + { + alias: 'lotion_bottle', + unicode: '๐Ÿงด', + category: 'Object' + }, + { + alias: 'lotus_position', + unicode: '๐Ÿง˜', + category: 'Person' + }, + { + alias: 'lotus_position_man', + unicode: '๐Ÿง˜โ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'lotus_position_woman', + unicode: '๐Ÿง˜โ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'loud_sound', + unicode: '๐Ÿ”Š', + category: 'Symbol' + }, + { + alias: 'loudspeaker', + unicode: '๐Ÿ“ข', + category: 'Symbol' + }, + { + alias: 'love_hotel', + unicode: '๐Ÿฉ', + category: 'Travel' + }, + { + alias: 'love_letter', + unicode: '๐Ÿ’Œ', + category: 'Object' + }, + { + alias: 'love_you_gesture', + unicode: '๐ŸคŸ', + category: 'Gesture' + }, + { + alias: 'low_brightness', + unicode: '๐Ÿ”…', + category: 'Object' + }, + { + alias: 'luggage', + unicode: '๐Ÿงณ', + category: 'Object' + }, + { + alias: 'lungs', + unicode: '๐Ÿซ', + category: 'Person' + }, + { + alias: 'luxembourg', + unicode: '๐Ÿ‡ฑ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'lying_face', + unicode: '๐Ÿคฅ', + category: 'Smiley' + }, + { + alias: 'm', + unicode: 'โ“‚๏ธ', + category: 'Symbol' + }, + { + alias: 'macau', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'macedonia', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'madagascar', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'mag', + unicode: '๐Ÿ”', + category: 'Object' + }, + { + alias: 'mag_right', + unicode: '๐Ÿ”Ž', + category: 'Object' + }, + { + alias: 'mage', + unicode: '๐Ÿง™', + category: 'Person' + }, + { + alias: 'mage_man', + unicode: '๐Ÿง™โ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'mage_woman', + unicode: '๐Ÿง™โ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'magic_wand', + unicode: '๐Ÿช„', + category: 'Activity' + }, + { + alias: 'magnet', + unicode: '๐Ÿงฒ', + category: 'Object' + }, + { + alias: 'mahjong', + unicode: '๐Ÿ€„๏ธ', + category: 'Object' + }, + { + alias: 'mailbox', + unicode: '๐Ÿ“ซ', + category: 'Object' + }, + { + alias: 'mailbox_closed', + unicode: '๐Ÿ“ช', + category: 'Object' + }, + { + alias: 'mailbox_with_mail', + unicode: '๐Ÿ“ฌ', + category: 'Object' + }, + { + alias: 'mailbox_with_no_mail', + unicode: '๐Ÿ“ญ', + category: 'Object' + }, + { + alias: 'malawi', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'malaysia', + unicode: '๐Ÿ‡ฒ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'maldives', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ป', + category: 'Country' + }, + { + alias: ['male_detective', 'detective'], + unicode: '๐Ÿ•ต', + category: 'Person' + }, + { + alias: 'male_sign', + unicode: 'โ™‚๏ธ', + category: 'Symbol' + }, + { + alias: 'mali', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'malta', + unicode: '๐Ÿ‡ฒ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'mammoth', + unicode: '๐Ÿฆฃ', + category: 'Animal' + }, + { + alias: 'man', + unicode: '๐Ÿ‘จ', + category: 'Person' + }, + { + alias: 'man_artist', + unicode: '๐Ÿ‘จโ€๐ŸŽจ', + category: 'Person' + }, + { + alias: 'man_astronaut', + unicode: '๐Ÿ‘จโ€๐Ÿš€', + category: 'Person' + }, + { + alias: 'man_beard', + unicode: '๐Ÿง”โ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'man_cartwheeling', + unicode: '๐Ÿคธโ€โ™‚', + category: 'Activity' + }, + { + alias: 'man_cook', + unicode: '๐Ÿ‘จโ€๐Ÿณ', + category: 'Person' + }, + { + alias: 'man_dancing', + unicode: '๐Ÿ•บ', + category: 'Person' + }, + { + alias: 'man_facepalming', + unicode: '๐Ÿคฆโ€โ™‚', + category: 'Person' + }, + { + alias: 'man_factory_worker', + unicode: '๐Ÿ‘จโ€๐Ÿญ', + category: 'Person' + }, + { + alias: 'man_farmer', + unicode: '๐Ÿ‘จโ€๐ŸŒพ', + category: 'Person' + }, + { + alias: 'man_feeding_baby', + unicode: '๐Ÿ‘จโ€๐Ÿผ', + category: 'Person' + }, + { + alias: 'man_firefighter', + unicode: '๐Ÿ‘จโ€๐Ÿš’', + category: 'Person' + }, + { + alias: 'man_health_worker', + unicode: '๐Ÿ‘จโ€โš•', + category: 'Person' + }, + { + alias: 'man_in_manual_wheelchair', + unicode: '๐Ÿ‘จโ€๐Ÿฆฝ', + category: 'Person' + }, + { + alias: 'man_in_motorized_wheelchair', + unicode: '๐Ÿ‘จโ€๐Ÿฆผ', + category: 'Person' + }, + { + alias: 'man_in_tuxedo', + unicode: '๐Ÿคต', + category: 'Person' + }, + { + alias: 'man_judge', + unicode: '๐Ÿ‘จโ€โš–', + category: 'Person' + }, + { + alias: 'man_juggling', + unicode: '๐Ÿคนโ€โ™‚', + category: 'Activity' + }, + { + alias: 'man_mechanic', + unicode: '๐Ÿ‘จโ€๐Ÿ”ง', + category: 'Person' + }, + { + alias: 'man_office_worker', + unicode: '๐Ÿ‘จโ€๐Ÿ’ผ', + category: 'Person' + }, + { + alias: 'man_pilot', + unicode: '๐Ÿ‘จโ€โœˆ', + category: 'Person' + }, + { + alias: 'man_playing_handball', + unicode: '๐Ÿคพโ€โ™‚', + category: 'Activity' + }, + { + alias: 'man_playing_water_polo', + unicode: '๐Ÿคฝโ€โ™‚', + category: 'Activity' + }, + { + alias: 'man_scientist', + unicode: '๐Ÿ‘จโ€๐Ÿ”ฌ', + category: 'Person' + }, + { + alias: 'man_shrugging', + unicode: '๐Ÿคทโ€โ™‚', + category: 'Person' + }, + { + alias: 'man_singer', + unicode: '๐Ÿ‘จโ€๐ŸŽค', + category: 'Person' + }, + { + alias: 'man_student', + unicode: '๐Ÿ‘จโ€๐ŸŽ“', + category: 'Person' + }, + { + alias: 'man_teacher', + unicode: '๐Ÿ‘จโ€๐Ÿซ', + category: 'Person' + }, + { + alias: 'man_technologist', + unicode: '๐Ÿ‘จโ€๐Ÿ’ป', + category: 'Person' + }, + { + alias: 'man_with_gua_pi_mao', + unicode: '๐Ÿ‘ฒ', + category: 'Person' + }, + { + alias: 'man_with_probing_cane', + unicode: '๐Ÿ‘จโ€๐Ÿฆฏ', + category: 'Person' + }, + { + alias: 'man_with_turban', + unicode: '๐Ÿ‘ณ', + category: 'Person' + }, + { + alias: 'man_with_veil', + unicode: '๐Ÿ‘ฐโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'mango', + unicode: '๐Ÿฅญ', + category: 'Food' + }, + { + alias: 'mantelpiece_clock', + unicode: '๐Ÿ•ฐ', + category: 'Object' + }, + { + alias: 'manual_wheelchair', + unicode: '๐Ÿฆฝ', + category: 'Object' + }, + { + alias: 'maple_leaf', + unicode: '๐Ÿ', + category: 'Nature' + }, + { + alias: 'marshall_islands', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'martial_arts_uniform', + unicode: '๐Ÿฅ‹', + category: 'Activity' + }, + { + alias: 'martinique', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ถ', + category: 'Country' + }, + { + alias: 'mask', + unicode: '๐Ÿ˜ท', + category: 'Person' + }, + { + alias: 'massage_man', + unicode: '๐Ÿ’†โ€โ™‚', + category: 'Person' + }, + { + alias: ['massage_woman', 'massage'], + unicode: '๐Ÿ’†', + category: 'Person' + }, + { + alias: 'mate', + unicode: '๐Ÿง‰', + category: 'Food' + }, + { + alias: 'mauritania', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'mauritius', + unicode: '๐Ÿ‡ฒ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'mayotte', + unicode: '๐Ÿ‡พ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'meat_on_bone', + unicode: '๐Ÿ–', + category: 'Food' + }, + { + alias: 'mechanic', + unicode: '๐Ÿง‘โ€๐Ÿ”ง', + category: 'Person' + }, + { + alias: 'mechanical_arm', + unicode: '๐Ÿฆพ', + category: 'Object' + }, + { + alias: 'mechanical_leg', + unicode: '๐Ÿฆฟ', + category: 'Object' + }, + { + alias: 'medal_military', + unicode: '๐ŸŽ–', + category: 'Activity' + }, + { + alias: 'medal_sports', + unicode: '๐Ÿ…', + category: 'Activity' + }, + { + alias: 'medical_symbol', + unicode: 'โš•๏ธ', + category: 'Symbol' + }, + { + alias: 'mega', + unicode: '๐Ÿ“ฃ', + category: 'Object' + }, + { + alias: 'melon', + unicode: '๐Ÿˆ', + category: 'Food' + }, + { + alias: ['memo', 'pencil'], + unicode: '๐Ÿ“', + category: 'Object' + }, + { + alias: 'men_wrestling', + unicode: '๐Ÿคผโ€โ™‚', + category: 'Activity' + }, + { + alias: 'mending_heart', + unicode: 'โค๏ธโ€๐Ÿฉน', + category: 'Symbol' + }, + { + alias: 'menorah', + unicode: '๐Ÿ•Ž', + category: 'Symbol' + }, + { + alias: 'mens', + unicode: '๐Ÿšน', + category: 'Symbol' + }, + { + alias: 'mermaid', + unicode: '๐Ÿงœโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'merman', + unicode: '๐Ÿงœโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'merperson', + unicode: '๐Ÿงœ', + category: 'Person' + }, + { + alias: 'metal', + unicode: '๐Ÿค˜', + category: 'Gesture' + }, + { + alias: 'metro', + unicode: '๐Ÿš‡', + category: 'Symbol' + }, + { + alias: 'mexico', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฝ', + category: 'Country' + }, + { + alias: 'microbe', + unicode: '๐Ÿฆ ', + category: 'Animal' + }, + { + alias: 'micronesia', + unicode: '๐Ÿ‡ซ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'microphone', + unicode: '๐ŸŽค', + category: 'Activity' + }, + { + alias: 'microscope', + unicode: '๐Ÿ”ฌ', + category: 'Object' + }, + { + alias: ['middle_finger', 'fu'], + unicode: '๐Ÿ–•', + category: 'Gesture' + }, + { + alias: 'military_helmet', + unicode: '๐Ÿช–', + category: 'Clothing' + }, + { + alias: 'milk_glass', + unicode: '๐Ÿฅ›', + category: 'Food' + }, + { + alias: 'milky_way', + unicode: '๐ŸŒŒ', + category: 'Nature' + }, + { + alias: 'minibus', + unicode: '๐Ÿš', + category: 'Travel' + }, + { + alias: 'minidisc', + unicode: '๐Ÿ’ฝ', + category: 'Object' + }, + { + alias: 'mirror', + unicode: '๐Ÿชž', + category: 'Object' + }, + { + alias: 'mobile_phone_off', + unicode: '๐Ÿ“ด', + category: 'Symbol' + }, + { + alias: 'moldova', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'monaco', + unicode: '๐Ÿ‡ฒ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'money_mouth_face', + unicode: '๐Ÿค‘', + category: 'Smiley' + }, + { + alias: 'money_with_wings', + unicode: '๐Ÿ’ธ', + category: 'Object' + }, + { + alias: 'moneybag', + unicode: '๐Ÿ’ฐ', + category: 'Object' + }, + { + alias: 'mongolia', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'monkey', + unicode: '๐Ÿ’', + category: 'Animal' + }, + { + alias: 'monkey_face', + unicode: '๐Ÿต', + category: 'Animal' + }, + { + alias: 'monocle_face', + unicode: '๐Ÿง', + category: 'Smiley' + }, + { + alias: 'monorail', + unicode: '๐Ÿš', + category: 'Travel' + }, + { + alias: 'montenegro', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'montserrat', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: ['moon', 'waxing_gibbous_moon'], + unicode: '๐ŸŒ”', + category: 'Nature' + }, + { + alias: 'moon_cake', + unicode: '๐Ÿฅฎ', + category: 'Food' + }, + { + alias: 'morocco', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'mortar_board', + unicode: '๐ŸŽ“', + category: 'Object' + }, + { + alias: 'mosque', + unicode: '๐Ÿ•Œ', + category: 'Travel' + }, + { + alias: 'mosquito', + unicode: '๐ŸฆŸ', + category: 'Animal' + }, + { + alias: 'motor_boat', + unicode: '๐Ÿ›ฅ', + category: 'Travel' + }, + { + alias: 'motor_scooter', + unicode: '๐Ÿ›ต', + category: 'Travel' + }, + { + alias: 'motorcycle', + unicode: '๐Ÿ', + category: 'Travel' + }, + { + alias: 'motorized_wheelchair', + unicode: '๐Ÿฆผ', + category: 'Object' + }, + { + alias: 'motorway', + unicode: '๐Ÿ›ฃ', + category: 'Travel' + }, + { + alias: 'mount_fuji', + unicode: '๐Ÿ—ป', + category: 'Travel' + }, + { + alias: 'mountain', + unicode: 'โ›ฐ', + category: 'Travel' + }, + { + alias: ['mountain_biking_man', 'mountain_bicyclist'], + unicode: '๐Ÿšต', + category: 'Activity' + }, + { + alias: 'mountain_biking_woman', + unicode: '๐Ÿšตโ€โ™€', + category: 'Activity' + }, + { + alias: 'mountain_cableway', + unicode: '๐Ÿš ', + category: 'Travel' + }, + { + alias: 'mountain_railway', + unicode: '๐Ÿšž', + category: 'Travel' + }, + { + alias: 'mountain_snow', + unicode: '๐Ÿ”', + category: 'Travel' + }, + { + alias: 'mouse', + unicode: '๐Ÿญ', + category: 'Animal' + }, + { + alias: 'mouse2', + unicode: '๐Ÿ', + category: 'Animal' + }, + { + alias: 'mouse_trap', + unicode: '๐Ÿชค', + category: 'Object' + }, + { + alias: 'movie_camera', + unicode: '๐ŸŽฅ', + category: 'Object' + }, + { + alias: 'moyai', + unicode: '๐Ÿ—ฟ', + category: 'Travel' + }, + { + alias: 'mozambique', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'mrs_claus', + unicode: '๐Ÿคถ', + category: 'Person' + }, + { + alias: 'muscle', + unicode: '๐Ÿ’ช', + category: 'Person' + }, + { + alias: 'mushroom', + unicode: '๐Ÿ„', + category: 'Nature' + }, + { + alias: 'musical_keyboard', + unicode: '๐ŸŽน', + category: 'Activity' + }, + { + alias: 'musical_note', + unicode: '๐ŸŽต', + category: 'Symbol' + }, + { + alias: 'musical_score', + unicode: '๐ŸŽผ', + category: 'Activity' + }, + { + alias: 'mute', + unicode: '๐Ÿ”‡', + category: 'Symbol' + }, + { + alias: 'mx_claus', + unicode: '๐Ÿง‘โ€๐ŸŽ„', + category: 'Person' + }, + { + alias: 'myanmar', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'nail_care', + unicode: '๐Ÿ’…', + category: 'Person' + }, + { + alias: 'name_badge', + unicode: '๐Ÿ“›', + category: 'Object' + }, + { + alias: 'namibia', + unicode: '๐Ÿ‡ณ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'national_park', + unicode: '๐Ÿž', + category: 'Travel' + }, + { + alias: 'nauru', + unicode: '๐Ÿ‡ณ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'nauseated_face', + unicode: '๐Ÿคข', + category: 'Smiley' + }, + { + alias: 'nazar_amulet', + unicode: '๐Ÿงฟ', + category: 'Symbol' + }, + { + alias: 'neckbeard', + unicode: false, + category: 'Custom' + }, + { + alias: 'necktie', + unicode: '๐Ÿ‘”', + category: 'Object' + }, + { + alias: 'negative_squared_cross_mark', + unicode: 'โŽ', + category: 'Symbol' + }, + { + alias: 'nepal', + unicode: '๐Ÿ‡ณ๐Ÿ‡ต', + category: 'Country' + }, + { + alias: 'nerd_face', + unicode: '๐Ÿค“', + category: 'Smiley' + }, + { + alias: 'nesting_dolls', + unicode: '๐Ÿช†', + category: 'Object' + }, + { + alias: 'netherlands', + unicode: '๐Ÿ‡ณ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'neutral_face', + unicode: '๐Ÿ˜', + category: 'Smiley' + }, + { + alias: 'new', + unicode: '๐Ÿ†•', + category: 'Symbol' + }, + { + alias: 'new_caledonia', + unicode: '๐Ÿ‡ณ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'new_moon', + unicode: '๐ŸŒ‘', + category: 'Nature' + }, + { + alias: 'new_moon_with_face', + unicode: '๐ŸŒš', + category: 'Nature' + }, + { + alias: 'new_zealand', + unicode: '๐Ÿ‡ณ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'newspaper', + unicode: '๐Ÿ“ฐ', + category: 'Object' + }, + { + alias: 'newspaper_roll', + unicode: '๐Ÿ—ž', + category: 'Object' + }, + { + alias: 'next_track_button', + unicode: 'โญ', + category: 'Symbol' + }, + { + alias: 'ng', + unicode: '๐Ÿ†–', + category: 'Symbol' + }, + { + alias: 'nicaragua', + unicode: '๐Ÿ‡ณ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'niger', + unicode: '๐Ÿ‡ณ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'nigeria', + unicode: '๐Ÿ‡ณ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'night_with_stars', + unicode: '๐ŸŒƒ', + category: 'Travel' + }, + { + alias: 'nine', + unicode: '9๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'ninja', + unicode: '๐Ÿฅท', + category: 'Person' + }, + { + alias: 'niue', + unicode: '๐Ÿ‡ณ๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'no_bell', + unicode: '๐Ÿ”•', + category: 'Object' + }, + { + alias: 'no_bicycles', + unicode: '๐Ÿšณ', + category: 'Symbol' + }, + { + alias: 'no_entry', + unicode: 'โ›”๏ธ', + category: 'Symbol' + }, + { + alias: 'no_entry_sign', + unicode: '๐Ÿšซ', + category: 'Symbol' + }, + { + alias: ['no_good_man', 'ng_man'], + unicode: '๐Ÿ™…โ€โ™‚', + category: 'Person' + }, + { + alias: ['no_good_woman', 'ng_woman', 'no_good'], + unicode: '๐Ÿ™…', + category: 'Person' + }, + { + alias: 'no_mobile_phones', + unicode: '๐Ÿ“ต', + category: 'Symbol' + }, + { + alias: 'no_mouth', + unicode: '๐Ÿ˜ถ', + category: 'Smiley' + }, + { + alias: 'no_pedestrians', + unicode: '๐Ÿšท', + category: 'Symbol' + }, + { + alias: 'no_smoking', + unicode: '๐Ÿšญ', + category: 'Symbol' + }, + { + alias: 'non-potable_water', + unicode: '๐Ÿšฑ', + category: 'Symbol' + }, + { + alias: 'norfolk_island', + unicode: '๐Ÿ‡ณ๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'north_korea', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ต', + category: 'Country' + }, + { + alias: 'northern_mariana_islands', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ต', + category: 'Country' + }, + { + alias: 'norway', + unicode: '๐Ÿ‡ณ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'nose', + unicode: '๐Ÿ‘ƒ', + category: 'Person' + }, + { + alias: 'notebook', + unicode: '๐Ÿ““', + category: 'Object' + }, + { + alias: 'notebook_with_decorative_cover', + unicode: '๐Ÿ“”', + category: 'Object' + }, + { + alias: 'notes', + unicode: '๐ŸŽถ', + category: 'Symbol' + }, + { + alias: 'nut_and_bolt', + unicode: '๐Ÿ”ฉ', + category: 'Object' + }, + { + alias: 'o', + unicode: 'โญ•๏ธ', + category: 'Symbol' + }, + { + alias: 'o2', + unicode: '๐Ÿ…พ๏ธ', + category: 'Symbol' + }, + { + alias: 'ocean', + unicode: '๐ŸŒŠ', + category: 'Nature' + }, + { + alias: 'octocat', + unicode: false, + category: 'Custom' + }, + { + alias: 'octopus', + unicode: '๐Ÿ™', + category: 'Animal' + }, + { + alias: 'oden', + unicode: '๐Ÿข', + category: 'Food' + }, + { + alias: 'office', + unicode: '๐Ÿข', + category: 'Travel' + }, + { + alias: 'office_worker', + unicode: '๐Ÿง‘โ€๐Ÿ’ผ', + category: 'Person' + }, + { + alias: 'oil_drum', + unicode: '๐Ÿ›ข', + category: 'Object' + }, + { + alias: 'ok', + unicode: '๐Ÿ†—', + category: 'Symbol' + }, + { + alias: 'ok_hand', + unicode: '๐Ÿ‘Œ', + category: 'Gesture' + }, + { + alias: 'ok_man', + unicode: '๐Ÿ™†โ€โ™‚', + category: 'Person' + }, + { + alias: 'ok_person', + unicode: '๐Ÿ™†', + category: 'Person' + }, + { + alias: 'ok_woman', + unicode: '๐Ÿ™†', + category: 'Person' + }, + { + alias: 'old_key', + unicode: '๐Ÿ—', + category: 'Object' + }, + { + alias: 'older_adult', + unicode: '๐Ÿง“', + category: 'Person' + }, + { + alias: 'older_man', + unicode: '๐Ÿ‘ด', + category: 'Person' + }, + { + alias: 'older_woman', + unicode: '๐Ÿ‘ต', + category: 'Person' + }, + { + alias: 'olive', + unicode: '๐Ÿซ’', + category: 'Food' + }, + { + alias: 'om', + unicode: '๐Ÿ•‰', + category: 'Symbol' + }, + { + alias: 'oman', + unicode: '๐Ÿ‡ด๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'on', + unicode: '๐Ÿ”›', + category: 'Symbol' + }, + { + alias: 'oncoming_automobile', + unicode: '๐Ÿš˜', + category: 'Travel' + }, + { + alias: 'oncoming_bus', + unicode: '๐Ÿš', + category: 'Travel' + }, + { + alias: 'oncoming_police_car', + unicode: '๐Ÿš”', + category: 'Travel' + }, + { + alias: 'oncoming_taxi', + unicode: '๐Ÿš–', + category: 'Travel' + }, + { + alias: 'one', + unicode: '1๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'one_piece_swimsuit', + unicode: '๐Ÿฉฑ', + category: 'Activity' + }, + { + alias: 'onion', + unicode: '๐Ÿง…', + category: 'Food' + }, + { + alias: 'open_file_folder', + unicode: '๐Ÿ“‚', + category: 'Object' + }, + { + alias: 'open_hands', + unicode: '๐Ÿ‘', + category: 'Gesture' + }, + { + alias: 'open_mouth', + unicode: '๐Ÿ˜ฎ', + category: 'Smiley' + }, + { + alias: 'open_umbrella', + unicode: 'โ˜‚๏ธ', + category: 'Object' + }, + { + alias: 'ophiuchus', + unicode: 'โ›Ž', + category: 'Symbol' + }, + { + alias: 'orange_book', + unicode: '๐Ÿ“™', + category: 'Object' + }, + { + alias: 'orange_circle', + unicode: '๐ŸŸ ', + category: 'Symbol' + }, + { + alias: 'orange_heart', + unicode: '๐Ÿงก', + category: 'Symbol' + }, + { + alias: 'orange_square', + unicode: '๐ŸŸง', + category: 'Symbol' + }, + { + alias: 'orangutan', + unicode: '๐Ÿฆง', + category: 'Animal' + }, + { + alias: 'orthodox_cross', + unicode: 'โ˜ฆ๏ธ', + category: 'Symbol' + }, + { + alias: 'otter', + unicode: '๐Ÿฆฆ', + category: 'Animal' + }, + { + alias: 'outbox_tray', + unicode: '๐Ÿ“ค', + category: 'Object' + }, + { + alias: 'owl', + unicode: '๐Ÿฆ‰', + category: 'Animal' + }, + { + alias: 'ox', + unicode: '๐Ÿ‚', + category: 'Animal' + }, + { + alias: 'oyster', + unicode: '๐Ÿฆช', + category: 'Animal' + }, + { + alias: 'package', + unicode: '๐Ÿ“ฆ', + category: 'Object' + }, + { + alias: 'page_facing_up', + unicode: '๐Ÿ“„', + category: 'Object' + }, + { + alias: 'page_with_curl', + unicode: '๐Ÿ“ƒ', + category: 'Object' + }, + { + alias: 'pager', + unicode: '๐Ÿ“Ÿ', + category: 'Object' + }, + { + alias: 'paintbrush', + unicode: '๐Ÿ–Œ', + category: 'Object' + }, + { + alias: 'pakistan', + unicode: '๐Ÿ‡ต๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'palau', + unicode: '๐Ÿ‡ต๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'palestinian_territories', + unicode: '๐Ÿ‡ต๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'palm_tree', + unicode: '๐ŸŒด', + category: 'Nature' + }, + { + alias: 'palms_up_together', + unicode: '๐Ÿคฒ', + category: 'Gesture' + }, + { + alias: 'panama', + unicode: '๐Ÿ‡ต๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'pancakes', + unicode: '๐Ÿฅž', + category: 'Food' + }, + { + alias: 'panda_face', + unicode: '๐Ÿผ', + category: 'Animal' + }, + { + alias: 'paperclip', + unicode: '๐Ÿ“Ž', + category: 'Object' + }, + { + alias: 'paperclips', + unicode: '๐Ÿ–‡', + category: 'Object' + }, + { + alias: 'papua_new_guinea', + unicode: '๐Ÿ‡ต๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'parachute', + unicode: '๐Ÿช‚', + category: 'Object' + }, + { + alias: 'paraguay', + unicode: '๐Ÿ‡ต๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'parasol_on_ground', + unicode: 'โ›ฑ', + category: 'Travel' + }, + { + alias: 'parking', + unicode: '๐Ÿ…ฟ๏ธ', + category: 'Symbol' + }, + { + alias: 'parrot', + unicode: '๐Ÿฆœ', + category: 'Animal' + }, + { + alias: 'part_alternation_mark', + unicode: 'ใ€ฝ๏ธ', + category: 'Symbol' + }, + { + alias: 'partly_sunny', + unicode: 'โ›…๏ธ', + category: 'Nature' + }, + { + alias: 'partying_face', + unicode: '๐Ÿฅณ', + category: 'Smiley' + }, + { + alias: 'passenger_ship', + unicode: '๐Ÿ›ณ', + category: 'Travel' + }, + { + alias: 'passport_control', + unicode: '๐Ÿ›‚', + category: 'Symbol' + }, + { + alias: 'pause_button', + unicode: 'โธ', + category: 'Symbol' + }, + { + alias: 'peace_symbol', + unicode: 'โ˜ฎ๏ธ', + category: 'Symbol' + }, + { + alias: 'peach', + unicode: '๐Ÿ‘', + category: 'Food' + }, + { + alias: 'peacock', + unicode: '๐Ÿฆš', + category: 'Animal' + }, + { + alias: 'peanuts', + unicode: '๐Ÿฅœ', + category: 'Food' + }, + { + alias: 'pear', + unicode: '๐Ÿ', + category: 'Food' + }, + { + alias: 'pen', + unicode: '๐Ÿ–Š', + category: 'Object' + }, + { + alias: 'pencil2', + unicode: 'โœ๏ธ', + category: 'Object' + }, + { + alias: 'penguin', + unicode: '๐Ÿง', + category: 'Animal' + }, + { + alias: 'pensive', + unicode: '๐Ÿ˜”', + category: 'Smiley' + }, + { + alias: 'people_holding_hands', + unicode: '๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘', + category: 'Person' + }, + { + alias: 'people_hugging', + unicode: '๐Ÿซ‚', + category: 'Person' + }, + { + alias: 'performing_arts', + unicode: '๐ŸŽญ', + category: 'Activity' + }, + { + alias: 'persevere', + unicode: '๐Ÿ˜ฃ', + category: 'Smiley' + }, + { + alias: 'person_bald', + unicode: '๐Ÿง‘โ€๐Ÿฆฒ', + category: 'Person' + }, + { + alias: 'person_curly_hair', + unicode: '๐Ÿง‘โ€๐Ÿฆฑ', + category: 'Person' + }, + { + alias: 'person_feeding_baby', + unicode: '๐Ÿง‘โ€๐Ÿผ', + category: 'Person' + }, + { + alias: 'person_fencing', + unicode: '๐Ÿคบ', + category: 'Activity' + }, + { + alias: 'person_in_manual_wheelchair', + unicode: '๐Ÿง‘โ€๐Ÿฆฝ', + category: 'Person' + }, + { + alias: 'person_in_motorized_wheelchair', + unicode: '๐Ÿง‘โ€๐Ÿฆผ', + category: 'Person' + }, + { + alias: 'person_in_tuxedo', + unicode: '๐Ÿคต๐Ÿป', + category: 'Person' + }, + { + alias: 'person_red_hair', + unicode: '๐Ÿง‘โ€๐Ÿฆฐ', + category: 'Person' + }, + { + alias: 'person_white_hair', + unicode: '๐Ÿง‘โ€๐Ÿฆณ', + category: 'Person' + }, + { + alias: 'person_with_probing_cane', + unicode: '๐Ÿง‘โ€๐Ÿฆฏ', + category: 'Person' + }, + { + alias: 'person_with_turban', + unicode: '๐Ÿ‘ณ', + category: 'Person' + }, + { + alias: 'person_with_veil', + unicode: '๐Ÿ‘ฐ', + category: 'Person' + }, + { + alias: 'peru', + unicode: '๐Ÿ‡ต๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'petri_dish', + unicode: '๐Ÿงซ', + category: 'Object' + }, + { + alias: 'philippines', + unicode: '๐Ÿ‡ต๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: ['phone', 'telephone'], + unicode: 'โ˜Ž๏ธ', + category: 'Object' + }, + { + alias: 'pick', + unicode: 'โ›', + category: 'Object' + }, + { + alias: 'pickup_truck', + unicode: '๐Ÿ›ป', + category: 'Travel' + }, + { + alias: 'pie', + unicode: '๐Ÿฅง', + category: 'Food' + }, + { + alias: 'pig', + unicode: '๐Ÿท', + category: 'Animal' + }, + { + alias: 'pig2', + unicode: '๐Ÿ–', + category: 'Animal' + }, + { + alias: 'pig_nose', + unicode: '๐Ÿฝ', + category: 'Animal' + }, + { + alias: 'pill', + unicode: '๐Ÿ’Š', + category: 'Object' + }, + { + alias: 'pilot', + unicode: '๐Ÿง‘โ€โœˆ๏ธ', + category: 'Person' + }, + { + alias: 'pinata', + unicode: '๐Ÿช…', + category: 'Activity' + }, + { + alias: 'pinched_fingers', + unicode: '๐ŸคŒ', + category: 'Gesture' + }, + { + alias: 'pinching_hand', + unicode: '๐Ÿค', + category: 'Gesture' + }, + { + alias: 'pineapple', + unicode: '๐Ÿ', + category: 'Food' + }, + { + alias: 'ping_pong', + unicode: '๐Ÿ“', + category: 'Activity' + }, + { + alias: 'pirate_flag', + unicode: '๐Ÿดโ€โ˜ ๏ธ', + category: 'Flag' + }, + { + alias: 'pisces', + unicode: 'โ™“๏ธ', + category: 'Symbol' + }, + { + alias: 'pitcairn_islands', + unicode: '๐Ÿ‡ต๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'pizza', + unicode: '๐Ÿ•', + category: 'Food' + }, + { + alias: 'placard', + unicode: '๐Ÿชง', + category: 'Object' + }, + { + alias: 'place_of_worship', + unicode: '๐Ÿ›', + category: 'Symbol' + }, + { + alias: 'plate_with_cutlery', + unicode: '๐Ÿฝ', + category: 'Food' + }, + { + alias: 'play_or_pause_button', + unicode: 'โฏ', + category: 'Symbol' + }, + { + alias: 'pleading_face', + unicode: '๐Ÿฅบ', + category: 'Smiley' + }, + { + alias: 'plunger', + unicode: '๐Ÿช ', + category: 'Object' + }, + { + alias: 'point_down', + unicode: '๐Ÿ‘‡', + category: 'Gesture' + }, + { + alias: 'point_left', + unicode: '๐Ÿ‘ˆ', + category: 'Gesture' + }, + { + alias: 'point_right', + unicode: '๐Ÿ‘‰', + category: 'Gesture' + }, + { + alias: 'point_up', + unicode: 'โ˜๏ธ', + category: 'Gesture' + }, + { + alias: 'point_up_2', + unicode: '๐Ÿ‘†', + category: 'Gesture' + }, + { + alias: 'poland', + unicode: '๐Ÿ‡ต๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'polar_bear', + unicode: '๐Ÿปโ€โ„๏ธ', + category: 'Animal' + }, + { + alias: 'police_car', + unicode: '๐Ÿš“', + category: 'Travel' + }, + { + alias: 'police_officer', + unicode: '๐Ÿ‘ฎ', + category: 'Person' + }, + { + alias: ['policeman', 'cop'], + unicode: '๐Ÿ‘ฎ', + category: 'Person' + }, + { + alias: 'policewoman', + unicode: '๐Ÿ‘ฎโ€โ™€', + category: 'Person' + }, + { + alias: 'poodle', + unicode: '๐Ÿฉ', + category: 'Animal' + }, + { + alias: 'popcorn', + unicode: '๐Ÿฟ', + category: 'Food' + }, + { + alias: 'portugal', + unicode: '๐Ÿ‡ต๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'post_office', + unicode: '๐Ÿฃ', + category: 'Travel' + }, + { + alias: 'postal_horn', + unicode: '๐Ÿ“ฏ', + category: 'Object' + }, + { + alias: 'postbox', + unicode: '๐Ÿ“ฎ', + category: 'Object' + }, + { + alias: 'potable_water', + unicode: '๐Ÿšฐ', + category: 'Symbol' + }, + { + alias: 'potato', + unicode: '๐Ÿฅ”', + category: 'Food' + }, + { + alias: 'potted_plant', + unicode: '๐Ÿชด', + category: 'Nature' + }, + { + alias: 'pouch', + unicode: '๐Ÿ‘', + category: 'Object' + }, + { + alias: 'poultry_leg', + unicode: '๐Ÿ—', + category: 'Food' + }, + { + alias: 'pound', + unicode: '๐Ÿ’ท', + category: 'Object' + }, + { + alias: 'pouting_cat', + unicode: '๐Ÿ˜พ', + category: 'Smiley' + }, + { + alias: 'pouting_face', + unicode: '๐Ÿ™Ž', + category: 'Person' + }, + { + alias: 'pouting_man', + unicode: '๐Ÿ™Žโ€โ™‚', + category: 'Person' + }, + { + alias: 'pouting_woman', + unicode: '๐Ÿ™Ž', + category: 'Person' + }, + { + alias: 'pray', + unicode: '๐Ÿ™', + category: 'Gesture' + }, + { + alias: 'prayer_beads', + unicode: '๐Ÿ“ฟ', + category: 'Object' + }, + { + alias: 'pregnant_woman', + unicode: '๐Ÿคฐ', + category: 'Person' + }, + { + alias: 'pretzel', + unicode: '๐Ÿฅจ', + category: 'Food' + }, + { + alias: 'previous_track_button', + unicode: 'โฎ', + category: 'Symbol' + }, + { + alias: 'prince', + unicode: '๐Ÿคด', + category: 'Person' + }, + { + alias: 'princess', + unicode: '๐Ÿ‘ธ', + category: 'Person' + }, + { + alias: 'printer', + unicode: '๐Ÿ–จ', + category: 'Object' + }, + { + alias: 'probing_cane', + unicode: '๐Ÿฆฏ', + category: 'Object' + }, + { + alias: 'puerto_rico', + unicode: '๐Ÿ‡ต๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'purple_circle', + unicode: '๐ŸŸฃ', + category: 'Symbol' + }, + { + alias: 'purple_heart', + unicode: '๐Ÿ’œ', + category: 'Symbol' + }, + { + alias: 'purple_square', + unicode: '๐ŸŸช', + category: 'Symbol' + }, + { + alias: 'purse', + unicode: '๐Ÿ‘›', + category: 'Object' + }, + { + alias: 'pushpin', + unicode: '๐Ÿ“Œ', + category: 'Object' + }, + { + alias: 'put_litter_in_its_place', + unicode: '๐Ÿšฎ', + category: 'Symbol' + }, + { + alias: 'qatar', + unicode: '๐Ÿ‡ถ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'question', + unicode: 'โ“', + category: 'Symbol' + }, + { + alias: 'rabbit', + unicode: '๐Ÿฐ', + category: 'Animal' + }, + { + alias: 'rabbit2', + unicode: '๐Ÿ‡', + category: 'Animal' + }, + { + alias: 'raccoon', + unicode: '๐Ÿฆ', + category: 'Animal' + }, + { + alias: 'racehorse', + unicode: '๐ŸŽ', + category: 'Animal' + }, + { + alias: 'racing_car', + unicode: '๐ŸŽ', + category: 'Travel' + }, + { + alias: 'radio', + unicode: '๐Ÿ“ป', + category: 'Object' + }, + { + alias: 'radio_button', + unicode: '๐Ÿ”˜', + category: 'Symbol' + }, + { + alias: 'radioactive', + unicode: 'โ˜ข๏ธ', + category: 'Symbol' + }, + { + alias: ['rage', 'pout'], + unicode: '๐Ÿ˜ก', + category: 'Smiley' + }, + { + alias: 'rage1', + unicode: false, + category: 'Custom' + }, + { + alias: 'rage2', + unicode: false, + category: 'Custom' + }, + { + alias: 'rage3', + unicode: false, + category: 'Custom' + }, + { + alias: 'rage4', + unicode: false, + category: 'Custom' + }, + { + alias: 'railway_car', + unicode: '๐Ÿšƒ', + category: 'Travel' + }, + { + alias: 'railway_track', + unicode: '๐Ÿ›ค', + category: 'Travel' + }, + { + alias: 'rainbow', + unicode: '๐ŸŒˆ', + category: 'Travel' + }, + { + alias: 'rainbow_flag', + unicode: '๐Ÿณ๏ธโ€๐ŸŒˆ', + category: 'Flag' + }, + { + alias: 'raised_back_of_hand', + unicode: '๐Ÿคš', + category: 'Gesture' + }, + { + alias: 'raised_eyebrow', + unicode: '๐Ÿคจ', + category: 'Smiley' + }, + { + alias: 'raised_hand_with_fingers_splayed', + unicode: '๐Ÿ–', + category: 'Gesture' + }, + { + alias: 'raised_hands', + unicode: '๐Ÿ™Œ', + category: 'Gesture' + }, + { + alias: 'raising_hand_man', + unicode: '๐Ÿ™‹โ€โ™‚', + category: 'Person' + }, + { + alias: ['raising_hand_woman', 'raising_hand'], + unicode: '๐Ÿ™‹', + category: 'Person' + }, + { + alias: 'ram', + unicode: '๐Ÿ', + category: 'Animal' + }, + { + alias: 'ramen', + unicode: '๐Ÿœ', + category: 'Food' + }, + { + alias: 'rat', + unicode: '๐Ÿ€', + category: 'Animal' + }, + { + alias: 'razor', + unicode: '๐Ÿช’', + category: 'Object' + }, + { + alias: 'receipt', + unicode: '๐Ÿงพ', + category: 'Object' + }, + { + alias: 'record_button', + unicode: 'โบ', + category: 'Symbol' + }, + { + alias: 'recycle', + unicode: 'โ™ป๏ธ', + category: 'Symbol' + }, + { + alias: 'red_circle', + unicode: '๐Ÿ”ด', + category: 'Symbol' + }, + { + alias: 'red_envelope', + unicode: '๐Ÿงง', + category: 'Object' + }, + { + alias: 'red_haired_man', + unicode: '๐Ÿ‘จโ€๐Ÿฆฐ', + category: 'Smiley' + }, + { + alias: 'red_haired_woman', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆฐ', + category: 'Smiley' + }, + { + alias: 'red_square', + unicode: '๐ŸŸฅ', + category: 'Symbol' + }, + { + alias: 'registered', + unicode: 'ยฎ๏ธ', + category: 'Symbol' + }, + { + alias: 'relaxed', + unicode: 'โ˜บ๏ธ', + category: 'Smiley' + }, + { + alias: 'relieved', + unicode: '๐Ÿ˜Œ', + category: 'Smiley' + }, + { + alias: 'reminder_ribbon', + unicode: '๐ŸŽ—', + category: 'Activity' + }, + { + alias: 'repeat', + unicode: '๐Ÿ”', + category: 'Symbol' + }, + { + alias: 'repeat_one', + unicode: '๐Ÿ”‚', + category: 'Symbol' + }, + { + alias: 'rescue_worker_helmet', + unicode: 'โ›‘', + category: 'Clothing' + }, + { + alias: 'restroom', + unicode: '๐Ÿšป', + category: 'Symbol' + }, + { + alias: 'reunion', + unicode: '๐Ÿ‡ท๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'revolving_hearts', + unicode: '๐Ÿ’ž', + category: 'Symbol' + }, + { + alias: 'rewind', + unicode: 'โช', + category: 'Symbol' + }, + { + alias: 'rhinoceros', + unicode: '๐Ÿฆ', + category: 'Animal' + }, + { + alias: 'ribbon', + unicode: '๐ŸŽ€', + category: 'Object' + }, + { + alias: 'rice', + unicode: '๐Ÿš', + category: 'Food' + }, + { + alias: 'rice_ball', + unicode: '๐Ÿ™', + category: 'Food' + }, + { + alias: 'rice_cracker', + unicode: '๐Ÿ˜', + category: 'Food' + }, + { + alias: 'rice_scene', + unicode: '๐ŸŽ‘', + category: 'Object' + }, + { + alias: 'right_anger_bubble', + unicode: '๐Ÿ—ฏ', + category: 'Symbol' + }, + { + alias: 'ring', + unicode: '๐Ÿ’', + category: 'Object' + }, + { + alias: 'ringed_planet', + unicode: '๐Ÿช', + category: 'Nature' + }, + { + alias: 'robot', + unicode: '๐Ÿค–', + category: 'Smiley' + }, + { + alias: 'rock', + unicode: '๐Ÿชจ', + category: 'Nature' + }, + { + alias: 'rocket', + unicode: '๐Ÿš€', + category: 'Travel' + }, + { + alias: 'rofl', + unicode: '๐Ÿคฃ', + category: 'Smiley' + }, + { + alias: 'roll_eyes', + unicode: '๐Ÿ™„', + category: 'Smiley' + }, + { + alias: 'roll_of_paper', + unicode: '๐Ÿงป', + category: 'Object' + }, + { + alias: 'roller_coaster', + unicode: '๐ŸŽข', + category: 'Travel' + }, + { + alias: 'roller_skate', + unicode: '๐Ÿ›ผ', + category: 'Activity' + }, + { + alias: 'romania', + unicode: '๐Ÿ‡ท๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'rooster', + unicode: '๐Ÿ“', + category: 'Animal' + }, + { + alias: 'rose', + unicode: '๐ŸŒน', + category: 'Nature' + }, + { + alias: 'rosette', + unicode: '๐Ÿต', + category: 'Activity' + }, + { + alias: 'rotating_light', + unicode: '๐Ÿšจ', + category: 'Travel' + }, + { + alias: 'round_pushpin', + unicode: '๐Ÿ“', + category: 'Travel' + }, + { + alias: ['rowing_man', 'rowboat'], + unicode: '๐Ÿšฃ', + category: 'Activity' + }, + { + alias: 'rowing_woman', + unicode: '๐Ÿšฃโ€โ™€', + category: 'Activity' + }, + { + alias: 'ru', + unicode: '๐Ÿ‡ท๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'rugby_football', + unicode: '๐Ÿ‰', + category: 'Activity' + }, + { + alias: ['running_man', 'runner', 'running'], + unicode: '๐Ÿƒ', + category: 'Person' + }, + { + alias: 'running_shirt_with_sash', + unicode: '๐ŸŽฝ', + category: 'Activity' + }, + { + alias: 'running_woman', + unicode: '๐Ÿƒโ€โ™€', + category: 'Person' + }, + { + alias: 'rwanda', + unicode: '๐Ÿ‡ท๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'sa', + unicode: '๐Ÿˆ‚๏ธ', + category: 'Symbol' + }, + { + alias: 'safety_pin', + unicode: '๐Ÿงท', + category: 'Object' + }, + { + alias: 'safety_vest', + unicode: '๐Ÿฆบ', + category: 'Clothing' + }, + { + alias: 'sagittarius', + unicode: 'โ™๏ธ', + category: 'Symbol' + }, + { + alias: 'sake', + unicode: '๐Ÿถ', + category: 'Food' + }, + { + alias: 'salt', + unicode: '๐Ÿง‚', + category: 'Food' + }, + { + alias: 'samoa', + unicode: '๐Ÿ‡ผ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'san_marino', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'sandal', + unicode: '๐Ÿ‘ก', + category: 'Object' + }, + { + alias: 'sandwich', + unicode: '๐Ÿฅช', + category: 'Food' + }, + { + alias: 'santa', + unicode: '๐ŸŽ…', + category: 'Object' + }, + { + alias: 'sao_tome_principe', + unicode: '๐Ÿ‡ธ๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'sari', + unicode: '๐Ÿฅป', + category: 'Clothing' + }, + { + alias: 'satellite', + unicode: '๐Ÿ“ก', + category: 'Object' + }, + { + alias: 'saudi_arabia', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'sauna_man', + unicode: '๐Ÿง–โ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'sauna_person', + unicode: '๐Ÿง–', + category: 'Person' + }, + { + alias: 'sauna_woman', + unicode: '๐Ÿง–โ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'sauropod', + unicode: '๐Ÿฆ•', + category: 'Animal' + }, + { + alias: 'saxophone', + unicode: '๐ŸŽท', + category: 'Activity' + }, + { + alias: 'scarf', + unicode: '๐Ÿงฃ', + category: 'Clothing' + }, + { + alias: 'school', + unicode: '๐Ÿซ', + category: 'Travel' + }, + { + alias: 'school_satchel', + unicode: '๐ŸŽ’', + category: 'Object' + }, + { + alias: 'scientist', + unicode: '๐Ÿง‘โ€๐Ÿ”ฌ', + category: 'Person' + }, + { + alias: 'scissors', + unicode: 'โœ‚๏ธ', + category: 'Object' + }, + { + alias: 'scorpion', + unicode: '๐Ÿฆ‚', + category: 'Animal' + }, + { + alias: 'scorpius', + unicode: 'โ™๏ธ', + category: 'Symbol' + }, + { + alias: 'scotland', + unicode: '๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ', + category: 'Country' + }, + { + alias: 'scream', + unicode: '๐Ÿ˜ฑ', + category: 'Smiley' + }, + { + alias: 'scream_cat', + unicode: '๐Ÿ™€', + category: 'Smiley' + }, + { + alias: 'screwdriver', + unicode: '๐Ÿช›', + category: 'Object' + }, + { + alias: 'scroll', + unicode: '๐Ÿ“œ', + category: 'Object' + }, + { + alias: 'seal', + unicode: '๐Ÿฆญ', + category: 'Animal' + }, + { + alias: 'seat', + unicode: '๐Ÿ’บ', + category: 'Object' + }, + { + alias: 'secret', + unicode: 'ใŠ™๏ธ', + category: 'Symbol' + }, + { + alias: 'see_no_evil', + unicode: '๐Ÿ™ˆ', + category: 'Smiley' + }, + { + alias: 'seedling', + unicode: '๐ŸŒฑ', + category: 'Nature' + }, + { + alias: 'selfie', + unicode: '๐Ÿคณ', + category: 'Person' + }, + { + alias: 'senegal', + unicode: '๐Ÿ‡ธ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'serbia', + unicode: '๐Ÿ‡ท๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'service_dog', + unicode: '๐Ÿ•โ€๐Ÿฆบ', + category: 'Animal' + }, + { + alias: 'seven', + unicode: '7๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'sewing_needle', + unicode: '๐Ÿชก', + category: 'Object' + }, + { + alias: 'seychelles', + unicode: '๐Ÿ‡ธ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'shallow_pan_of_food', + unicode: '๐Ÿฅ˜', + category: 'Food' + }, + { + alias: 'shamrock', + unicode: 'โ˜˜๏ธ', + category: 'Nature' + }, + { + alias: 'shark', + unicode: '๐Ÿฆˆ', + category: 'Animal' + }, + { + alias: 'shaved_ice', + unicode: '๐Ÿง', + category: 'Food' + }, + { + alias: 'sheep', + unicode: '๐Ÿ‘', + category: 'Animal' + }, + { + alias: 'shell', + unicode: '๐Ÿš', + category: 'Nature' + }, + { + alias: 'shield', + unicode: '๐Ÿ›ก', + category: 'Object' + }, + { + alias: 'shinto_shrine', + unicode: 'โ›ฉ', + category: 'Travel' + }, + { + alias: 'ship', + unicode: '๐Ÿšข', + category: 'Travel' + }, + { + alias: 'shipit', + unicode: false, + category: 'Custom' + }, + { + alias: ['shirt', 'tshirt'], + unicode: '๐Ÿ‘•', + category: 'Object' + }, + { + alias: ['shoe', 'mans_shoe'], + unicode: '๐Ÿ‘ž', + category: 'Object' + }, + { + alias: 'shopping', + unicode: '๐Ÿ›', + category: 'Object' + }, + { + alias: 'shopping_cart', + unicode: '๐Ÿ›’', + category: 'Object' + }, + { + alias: 'shorts', + unicode: '๐Ÿฉณ', + category: 'Activity' + }, + { + alias: 'shower', + unicode: '๐Ÿšฟ', + category: 'Object' + }, + { + alias: 'shrimp', + unicode: '๐Ÿฆ', + category: 'Animal' + }, + { + alias: 'shrug', + unicode: '๐Ÿคท', + category: 'Person' + }, + { + alias: 'shushing_face', + unicode: '๐Ÿคซ', + category: 'Smiley' + }, + { + alias: 'sierra_leone', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'signal_strength', + unicode: '๐Ÿ“ถ', + category: 'Symbol' + }, + { + alias: 'singapore', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'singer', + unicode: '๐Ÿง‘โ€๐ŸŽค', + category: 'Person' + }, + { + alias: 'sint_maarten', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฝ', + category: 'Country' + }, + { + alias: 'six', + unicode: '6๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'six_pointed_star', + unicode: '๐Ÿ”ฏ', + category: 'Symbol' + }, + { + alias: 'skateboard', + unicode: '๐Ÿ›น', + category: 'Activity' + }, + { + alias: 'ski', + unicode: '๐ŸŽฟ', + category: 'Activity' + }, + { + alias: 'skier', + unicode: 'โ›ท', + category: 'Activity' + }, + { + alias: 'skull', + unicode: '๐Ÿ’€', + category: 'Person' + }, + { + alias: 'skull_and_crossbones', + unicode: 'โ˜ ๏ธ', + category: 'Person' + }, + { + alias: 'skunk', + unicode: '๐Ÿฆจ', + category: 'Animal' + }, + { + alias: 'sled', + unicode: '๐Ÿ›ท', + category: 'Activity' + }, + { + alias: 'sleeping', + unicode: '๐Ÿ˜ด', + category: 'Smiley' + }, + { + alias: 'sleeping_bed', + unicode: '๐Ÿ›Œ', + category: 'Object' + }, + { + alias: 'sleepy', + unicode: '๐Ÿ˜ช', + category: 'Smiley' + }, + { + alias: 'slightly_frowning_face', + unicode: '๐Ÿ™', + category: 'Smiley' + }, + { + alias: 'slightly_smiling_face', + unicode: '๐Ÿ™‚', + category: 'Smiley' + }, + { + alias: 'slot_machine', + unicode: '๐ŸŽฐ', + category: 'Activity' + }, + { + alias: 'sloth', + unicode: '๐Ÿฆฅ', + category: 'Animal' + }, + { + alias: 'slovakia', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'slovenia', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'small_airplane', + unicode: '๐Ÿ›ฉ', + category: 'Travel' + }, + { + alias: 'small_blue_diamond', + unicode: '๐Ÿ”น', + category: 'Symbol' + }, + { + alias: 'small_orange_diamond', + unicode: '๐Ÿ”ธ', + category: 'Symbol' + }, + { + alias: 'small_red_triangle', + unicode: '๐Ÿ”บ', + category: 'Symbol' + }, + { + alias: 'small_red_triangle_down', + unicode: '๐Ÿ”ป', + category: 'Symbol' + }, + { + alias: 'smile', + unicode: '๐Ÿ˜„', + category: 'Smiley' + }, + { + alias: 'smile_cat', + unicode: '๐Ÿ˜ธ', + category: 'Smiley' + }, + { + alias: 'smiley', + unicode: '๐Ÿ˜ƒ', + category: 'Smiley' + }, + { + alias: 'smiley_cat', + unicode: '๐Ÿ˜บ', + category: 'Smiley' + }, + { + alias: 'smiling_face_with_tear', + unicode: '๐Ÿฅฒ', + category: 'Smiley' + }, + { + alias: 'smiling_face_with_three_hearts', + unicode: '๐Ÿฅฐ', + category: 'Smiley' + }, + { + alias: 'smiling_imp', + unicode: '๐Ÿ˜ˆ', + category: 'Smiley' + }, + { + alias: 'smirk', + unicode: '๐Ÿ˜', + category: 'Smiley' + }, + { + alias: 'smirk_cat', + unicode: '๐Ÿ˜ผ', + category: 'Smiley' + }, + { + alias: 'smoking', + unicode: '๐Ÿšฌ', + category: 'Object' + }, + { + alias: 'snail', + unicode: '๐ŸŒ', + category: 'Animal' + }, + { + alias: 'snake', + unicode: '๐Ÿ', + category: 'Animal' + }, + { + alias: 'sneezing_face', + unicode: '๐Ÿคง', + category: 'Smiley' + }, + { + alias: 'snowboarder', + unicode: '๐Ÿ‚', + category: 'Activity' + }, + { + alias: 'snowflake', + unicode: 'โ„๏ธ', + category: 'Nature' + }, + { + alias: 'snowman', + unicode: 'โ›„๏ธ', + category: 'Nature' + }, + { + alias: 'snowman_with_snow', + unicode: 'โ˜ƒ๏ธ', + category: 'Nature' + }, + { + alias: 'soap', + unicode: '๐Ÿงผ', + category: 'Object' + }, + { + alias: 'sob', + unicode: '๐Ÿ˜ญ', + category: 'Smiley' + }, + { + alias: 'soccer', + unicode: 'โšฝ๏ธ', + category: 'Activity' + }, + { + alias: 'socks', + unicode: '๐Ÿงฆ', + category: 'Clothing' + }, + { + alias: 'softball', + unicode: '๐ŸฅŽ', + category: 'Activity' + }, + { + alias: 'solomon_islands', + unicode: '๐Ÿ‡ธ๐Ÿ‡ง', + category: 'Country' + }, + { + alias: 'somalia', + unicode: '๐Ÿ‡ธ๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'soon', + unicode: '๐Ÿ”œ', + category: 'Symbol' + }, + { + alias: 'sos', + unicode: '๐Ÿ†˜', + category: 'Symbol' + }, + { + alias: 'sound', + unicode: '๐Ÿ”‰', + category: 'Symbol' + }, + { + alias: 'south_africa', + unicode: '๐Ÿ‡ฟ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'south_georgia_south_sandwich_islands', + unicode: '๐Ÿ‡ฌ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'south_sudan', + unicode: '๐Ÿ‡ธ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'space_invader', + unicode: '๐Ÿ‘พ', + category: 'Object' + }, + { + alias: 'spades', + unicode: 'โ™ ๏ธ', + category: 'Symbol' + }, + { + alias: 'spaghetti', + unicode: '๐Ÿ', + category: 'Food' + }, + { + alias: 'sparkle', + unicode: 'โ‡๏ธ', + category: 'Symbol' + }, + { + alias: 'sparkler', + unicode: '๐ŸŽ‡', + category: 'Object' + }, + { + alias: 'sparkles', + unicode: 'โœจ', + category: 'Nature' + }, + { + alias: 'sparkling_heart', + unicode: '๐Ÿ’–', + category: 'Object' + }, + { + alias: 'speak_no_evil', + unicode: '๐Ÿ™Š', + category: 'Animal' + }, + { + alias: 'speaker', + unicode: '๐Ÿ”ˆ', + category: 'Symbol' + }, + { + alias: 'speaking_head', + unicode: '๐Ÿ—ฃ', + category: 'Person' + }, + { + alias: 'speech_balloon', + unicode: '๐Ÿ’ฌ', + category: 'Symbol' + }, + { + alias: 'speedboat', + unicode: '๐Ÿšค', + category: 'Travel' + }, + { + alias: 'spider', + unicode: '๐Ÿ•ท', + category: 'Animal' + }, + { + alias: 'spider_web', + unicode: '๐Ÿ•ธ', + category: 'Object' + }, + { + alias: 'spiral_calendar', + unicode: '๐Ÿ—“', + category: 'Object' + }, + { + alias: 'spiral_notepad', + unicode: '๐Ÿ—’', + category: 'Object' + }, + { + alias: 'sponge', + unicode: '๐Ÿงฝ', + category: 'Object' + }, + { + alias: 'spoon', + unicode: '๐Ÿฅ„', + category: 'Food' + }, + { + alias: 'squid', + unicode: '๐Ÿฆ‘', + category: 'Animal' + }, + { + alias: 'sri_lanka', + unicode: '๐Ÿ‡ฑ๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'st_barthelemy', + unicode: '๐Ÿ‡ง๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: 'st_helena', + unicode: '๐Ÿ‡ธ๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'st_kitts_nevis', + unicode: '๐Ÿ‡ฐ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'st_lucia', + unicode: '๐Ÿ‡ฑ๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'st_martin', + unicode: '๐Ÿ‡ฒ๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'st_pierre_miquelon', + unicode: '๐Ÿ‡ต๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'st_vincent_grenadines', + unicode: '๐Ÿ‡ป๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'stadium', + unicode: '๐ŸŸ', + category: 'Travel' + }, + { + alias: 'standing_man', + unicode: '๐Ÿงโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'standing_person', + unicode: '๐Ÿง', + category: 'Person' + }, + { + alias: 'standing_woman', + unicode: '๐Ÿงโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'star', + unicode: 'โญ๏ธ', + category: 'Nature' + }, + { + alias: 'star2', + unicode: '๐ŸŒŸ', + category: 'Nature' + }, + { + alias: 'star_and_crescent', + unicode: 'โ˜ช๏ธ', + category: 'Symbol' + }, + { + alias: 'star_of_david', + unicode: 'โœก๏ธ', + category: 'Symbol' + }, + { + alias: 'star_struck', + unicode: '๐Ÿคฉ', + category: 'Smiley' + }, + { + alias: 'stars', + unicode: '๐ŸŒ ', + category: 'Travel' + }, + { + alias: 'station', + unicode: '๐Ÿš‰', + category: 'Travel' + }, + { + alias: 'statue_of_liberty', + unicode: '๐Ÿ—ฝ', + category: 'Travel' + }, + { + alias: 'steam_locomotive', + unicode: '๐Ÿš‚', + category: 'Travel' + }, + { + alias: 'stethoscope', + unicode: '๐Ÿฉบ', + category: 'Object' + }, + { + alias: 'stew', + unicode: '๐Ÿฒ', + category: 'Food' + }, + { + alias: 'stop_button', + unicode: 'โน', + category: 'Symbol' + }, + { + alias: 'stop_sign', + unicode: '๐Ÿ›‘', + category: 'Symbol' + }, + { + alias: 'stopwatch', + unicode: 'โฑ', + category: 'Object' + }, + { + alias: 'straight_ruler', + unicode: '๐Ÿ“', + category: 'Object' + }, + { + alias: 'strawberry', + unicode: '๐Ÿ“', + category: 'Food' + }, + { + alias: 'stuck_out_tongue', + unicode: '๐Ÿ˜›', + category: 'Smiley' + }, + { + alias: 'stuck_out_tongue_closed_eyes', + unicode: '๐Ÿ˜', + category: 'Smiley' + }, + { + alias: 'stuck_out_tongue_winking_eye', + unicode: '๐Ÿ˜œ', + category: 'Smiley' + }, + { + alias: 'student', + unicode: '๐Ÿง‘โ€๐ŸŽ“', + category: 'Person' + }, + { + alias: 'studio_microphone', + unicode: '๐ŸŽ™', + category: 'Object' + }, + { + alias: 'stuffed_flatbread', + unicode: '๐Ÿฅ™', + category: 'Food' + }, + { + alias: 'sudan', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฉ', + category: 'Country' + }, + { + alias: 'sun_behind_large_cloud', + unicode: '๐ŸŒฅ', + category: 'Nature' + }, + { + alias: 'sun_behind_rain_cloud', + unicode: '๐ŸŒฆ', + category: 'Nature' + }, + { + alias: 'sun_behind_small_cloud', + unicode: '๐ŸŒค', + category: 'Nature' + }, + { + alias: 'sun_with_face', + unicode: '๐ŸŒž', + category: 'Nature' + }, + { + alias: 'sunflower', + unicode: '๐ŸŒป', + category: 'Nature' + }, + { + alias: 'sunglasses', + unicode: '๐Ÿ˜Ž', + category: 'Smiley' + }, + { + alias: 'sunny', + unicode: 'โ˜€๏ธ', + category: 'Nature' + }, + { + alias: 'sunrise', + unicode: '๐ŸŒ…', + category: 'Travel' + }, + { + alias: 'sunrise_over_mountains', + unicode: '๐ŸŒ„', + category: 'Travel' + }, + { + alias: 'superhero', + unicode: '๐Ÿฆธ', + category: 'Person' + }, + { + alias: 'superhero_man', + unicode: '๐Ÿฆธโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'superhero_woman', + unicode: '๐Ÿฆธโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'supervillain', + unicode: '๐Ÿฆน', + category: 'Person' + }, + { + alias: 'supervillain_man', + unicode: '๐Ÿฆนโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'supervillain_woman', + unicode: '๐Ÿฆนโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: ['surfing_man', 'surfer'], + unicode: '๐Ÿ„', + category: 'Activity' + }, + { + alias: 'surfing_woman', + unicode: '๐Ÿ„โ€โ™€', + category: 'Activity' + }, + { + alias: 'suriname', + unicode: '๐Ÿ‡ธ๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'sushi', + unicode: '๐Ÿฃ', + category: 'Food' + }, + { + alias: 'suspect', + unicode: false, + category: 'Custom' + }, + { + alias: 'suspension_railway', + unicode: '๐ŸšŸ', + category: 'Travel' + }, + { + alias: 'svalbard_jan_mayen', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฏ', + category: 'Country' + }, + { + alias: 'swan', + unicode: '๐Ÿฆข', + category: 'Animal' + }, + { + alias: 'swaziland', + unicode: '๐Ÿ‡ธ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'sweat', + unicode: '๐Ÿ˜“', + category: 'Smiley' + }, + { + alias: 'sweat_drops', + unicode: '๐Ÿ’ฆ', + category: 'Nature' + }, + { + alias: 'sweat_smile', + unicode: '๐Ÿ˜…', + category: 'Smiley' + }, + { + alias: 'sweden', + unicode: '๐Ÿ‡ธ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'sweet_potato', + unicode: '๐Ÿ ', + category: 'Food' + }, + { + alias: 'swim_brief', + unicode: '๐Ÿฉฒ', + category: 'Activity' + }, + { + alias: ['swimming_man', 'swimmer'], + unicode: '๐ŸŠ', + category: 'Activity' + }, + { + alias: 'swimming_woman', + unicode: '๐ŸŠโ€โ™€', + category: 'Activity' + }, + { + alias: 'switzerland', + unicode: '๐Ÿ‡จ๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'symbols', + unicode: '๐Ÿ”ฃ', + category: 'Symbol' + }, + { + alias: 'synagogue', + unicode: '๐Ÿ•', + category: 'Travel' + }, + { + alias: 'syria', + unicode: '๐Ÿ‡ธ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'syringe', + unicode: '๐Ÿ’‰', + category: 'Object' + }, + { + alias: 't-rex', + unicode: '๐Ÿฆ–', + category: 'Animal' + }, + { + alias: 'taco', + unicode: '๐ŸŒฎ', + category: 'Food' + }, + { + alias: 'tada', + unicode: '๐ŸŽ‰', + category: 'Object' + }, + { + alias: 'taiwan', + unicode: '๐Ÿ‡น๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'tajikistan', + unicode: '๐Ÿ‡น๐Ÿ‡ฏ', + category: 'Country' + }, + { + alias: 'takeout_box', + unicode: '๐Ÿฅก', + category: 'Food' + }, + { + alias: 'tamale', + unicode: '๐Ÿซ”', + category: 'Food' + }, + { + alias: 'tanabata_tree', + unicode: '๐ŸŽ‹', + category: 'Object' + }, + { + alias: ['tangerine', 'mandarin', 'orange'], + unicode: '๐ŸŠ', + category: 'Food' + }, + { + alias: 'tanzania', + unicode: '๐Ÿ‡น๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'taurus', + unicode: 'โ™‰๏ธ', + category: 'Symbol' + }, + { + alias: 'taxi', + unicode: '๐Ÿš•', + category: 'Travel' + }, + { + alias: 'tea', + unicode: '๐Ÿต', + category: 'Food' + }, + { + alias: 'teacher', + unicode: '๐Ÿง‘โ€๐Ÿซ', + category: 'Person' + }, + { + alias: 'teapot', + unicode: '๐Ÿซ–', + category: 'Food' + }, + { + alias: 'technologist', + unicode: '๐Ÿง‘โ€๐Ÿ’ป', + category: 'Person' + }, + { + alias: 'teddy_bear', + unicode: '๐Ÿงธ', + category: 'Object' + }, + { + alias: 'telephone_receiver', + unicode: '๐Ÿ“ž', + category: 'Object' + }, + { + alias: 'telescope', + unicode: '๐Ÿ”ญ', + category: 'Object' + }, + { + alias: 'tennis', + unicode: '๐ŸŽพ', + category: 'Activity' + }, + { + alias: 'tent', + unicode: 'โ›บ๏ธ', + category: 'Travel' + }, + { + alias: 'test_tube', + unicode: '๐Ÿงช', + category: 'Object' + }, + { + alias: 'thailand', + unicode: '๐Ÿ‡น๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'thermometer', + unicode: '๐ŸŒก', + category: 'Object' + }, + { + alias: 'thinking', + unicode: '๐Ÿค”', + category: 'Smiley' + }, + { + alias: 'thong_sandal', + unicode: '๐Ÿฉด', + category: 'Clothing' + }, + { + alias: 'thought_balloon', + unicode: '๐Ÿ’ญ', + category: 'Symbol' + }, + { + alias: 'thread', + unicode: '๐Ÿงต', + category: 'Object' + }, + { + alias: 'three', + unicode: '3๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'ticket', + unicode: '๐ŸŽซ', + category: 'Activity' + }, + { + alias: 'tickets', + unicode: '๐ŸŽŸ', + category: 'Activity' + }, + { + alias: 'tiger', + unicode: '๐Ÿฏ', + category: 'Animal' + }, + { + alias: 'tiger2', + unicode: '๐Ÿ…', + category: 'Animal' + }, + { + alias: 'timer_clock', + unicode: 'โฒ', + category: 'Object' + }, + { + alias: 'timor_leste', + unicode: '๐Ÿ‡น๐Ÿ‡ฑ', + category: 'Country' + }, + { + alias: ['tipping_hand_man', 'sassy_man'], + unicode: '๐Ÿ’โ€โ™‚', + category: 'Person' + }, + { + alias: 'tipping_hand_person', + unicode: '๐Ÿ’', + category: 'Person' + }, + { + alias: ['tipping_hand_woman', 'information_desk_person', 'sassy_woman'], + unicode: '๐Ÿ’', + category: 'Person' + }, + { + alias: 'tired_face', + unicode: '๐Ÿ˜ซ', + category: 'Smiley' + }, + { + alias: 'tm', + unicode: 'โ„ข๏ธ', + category: 'Symbol' + }, + { + alias: 'togo', + unicode: '๐Ÿ‡น๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'toilet', + unicode: '๐Ÿšฝ', + category: 'Object' + }, + { + alias: 'tokelau', + unicode: '๐Ÿ‡น๐Ÿ‡ฐ', + category: 'Country' + }, + { + alias: 'tokyo_tower', + unicode: '๐Ÿ—ผ', + category: 'Travel' + }, + { + alias: 'tomato', + unicode: '๐Ÿ…', + category: 'Food' + }, + { + alias: 'tonga', + unicode: '๐Ÿ‡น๐Ÿ‡ด', + category: 'Country' + }, + { + alias: 'tongue', + unicode: '๐Ÿ‘…', + category: 'Person' + }, + { + alias: 'toolbox', + unicode: '๐Ÿงฐ', + category: 'Object' + }, + { + alias: 'tooth', + unicode: '๐Ÿฆท', + category: 'Person' + }, + { + alias: 'toothbrush', + unicode: '๐Ÿชฅ', + category: 'Object' + }, + { + alias: 'top', + unicode: '๐Ÿ”', + category: 'Symbol' + }, + { + alias: 'tophat', + unicode: '๐ŸŽฉ', + category: 'Object' + }, + { + alias: 'tornado', + unicode: '๐ŸŒช', + category: 'Travel' + }, + { + alias: 'tr', + unicode: '๐Ÿ‡น๐Ÿ‡ท', + category: 'Country' + }, + { + alias: 'trackball', + unicode: '๐Ÿ–ฒ', + category: 'Object' + }, + { + alias: 'tractor', + unicode: '๐Ÿšœ', + category: 'Travel' + }, + { + alias: 'traffic_light', + unicode: '๐Ÿšฅ', + category: 'Travel' + }, + { + alias: 'train', + unicode: '๐Ÿš‹', + category: 'Travel' + }, + { + alias: 'train2', + unicode: '๐Ÿš†', + category: 'Travel' + }, + { + alias: 'tram', + unicode: '๐ŸšŠ', + category: 'Travel' + }, + { + alias: 'transgender_flag', + unicode: '๐Ÿณ๏ธโ€โšง๏ธ', + category: 'Flag' + }, + { + alias: 'transgender_symbol', + unicode: 'โšง๏ธ', + category: 'Symbol' + }, + { + alias: 'triangular_flag_on_post', + unicode: '๐Ÿšฉ', + category: 'Flag' + }, + { + alias: 'triangular_ruler', + unicode: '๐Ÿ“', + category: 'Object' + }, + { + alias: 'trident', + unicode: '๐Ÿ”ฑ', + category: 'Symbol' + }, + { + alias: 'trinidad_tobago', + unicode: '๐Ÿ‡น๐Ÿ‡น', + category: 'Country' + }, + { + alias: 'tristan_da_cunha', + unicode: '๐Ÿ‡น๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'triumph', + unicode: '๐Ÿ˜ค', + category: 'Smiley' + }, + { + alias: 'trolleybus', + unicode: '๐ŸšŽ', + category: 'Travel' + }, + { + alias: 'trollface', + unicode: false, + category: 'Custom' + }, + { + alias: 'trophy', + unicode: '๐Ÿ†', + category: 'Activity' + }, + { + alias: 'tropical_drink', + unicode: '๐Ÿน', + category: 'Food' + }, + { + alias: 'tropical_fish', + unicode: '๐Ÿ ', + category: 'Animal' + }, + { + alias: 'truck', + unicode: '๐Ÿšš', + category: 'Travel' + }, + { + alias: 'trumpet', + unicode: '๐ŸŽบ', + category: 'Activity' + }, + { + alias: 'tulip', + unicode: '๐ŸŒท', + category: 'Nature' + }, + { + alias: 'tumbler_glass', + unicode: '๐Ÿฅƒ', + category: 'Food' + }, + { + alias: 'tunisia', + unicode: '๐Ÿ‡น๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'turkey', + unicode: '๐Ÿฆƒ', + category: 'Animal' + }, + { + alias: 'turkmenistan', + unicode: '๐Ÿ‡น๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'turks_caicos_islands', + unicode: '๐Ÿ‡น๐Ÿ‡จ', + category: 'Country' + }, + { + alias: 'turtle', + unicode: '๐Ÿข', + category: 'Animal' + }, + { + alias: 'tuvalu', + unicode: '๐Ÿ‡น๐Ÿ‡ป', + category: 'Country' + }, + { + alias: 'tv', + unicode: '๐Ÿ“บ', + category: 'Object' + }, + { + alias: 'twisted_rightwards_arrows', + unicode: '๐Ÿ”€', + category: 'Symbol' + }, + { + alias: 'two', + unicode: '2๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'two_hearts', + unicode: '๐Ÿ’•', + category: 'Symbol' + }, + { + alias: 'two_men_holding_hands', + unicode: '๐Ÿ‘ฌ', + category: 'Person' + }, + { + alias: 'two_women_holding_hands', + unicode: '๐Ÿ‘ญ', + category: 'Person' + }, + { + alias: 'u5272', + unicode: '๐Ÿˆน', + category: 'Symbol' + }, + { + alias: 'u5408', + unicode: '๐Ÿˆด', + category: 'Symbol' + }, + { + alias: 'u55b6', + unicode: '๐Ÿˆบ', + category: 'Symbol' + }, + { + alias: 'u6307', + unicode: '๐Ÿˆฏ๏ธ', + category: 'Symbol' + }, + { + alias: 'u6708', + unicode: '๐Ÿˆท๏ธ', + category: 'Symbol' + }, + { + alias: 'u6709', + unicode: '๐Ÿˆถ', + category: 'Symbol' + }, + { + alias: 'u6e80', + unicode: '๐Ÿˆต', + category: 'Symbol' + }, + { + alias: 'u7121', + unicode: '๐Ÿˆš๏ธ', + category: 'Symbol' + }, + { + alias: 'u7533', + unicode: '๐Ÿˆธ', + category: 'Symbol' + }, + { + alias: 'u7981', + unicode: '๐Ÿˆฒ', + category: 'Symbol' + }, + { + alias: 'u7a7a', + unicode: '๐Ÿˆณ', + category: 'Symbol' + }, + { + alias: 'uganda', + unicode: '๐Ÿ‡บ๐Ÿ‡ฌ', + category: 'Country' + }, + { + alias: 'ukraine', + unicode: '๐Ÿ‡บ๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'umbrella', + unicode: 'โ˜”๏ธ', + category: 'Nature' + }, + { + alias: 'unamused', + unicode: '๐Ÿ˜’', + category: 'Smiley' + }, + { + alias: 'underage', + unicode: '๐Ÿ”ž', + category: 'Symbol' + }, + { + alias: 'unicorn', + unicode: '๐Ÿฆ„', + category: 'Animal' + }, + { + alias: 'united_arab_emirates', + unicode: '๐Ÿ‡ฆ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'united_nations', + unicode: '๐Ÿ‡บ๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'unlock', + unicode: '๐Ÿ”“', + category: 'Object' + }, + { + alias: 'up', + unicode: '๐Ÿ†™', + category: 'Symbol' + }, + { + alias: 'upside_down_face', + unicode: '๐Ÿ™ƒ', + category: 'Smiley' + }, + { + alias: 'uruguay', + unicode: '๐Ÿ‡บ๐Ÿ‡พ', + category: 'Country' + }, + { + alias: 'us', + unicode: '๐Ÿ‡บ๐Ÿ‡ธ', + category: 'Country' + }, + { + alias: 'us_outlying_islands', + unicode: '๐Ÿ‡บ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'us_virgin_islands', + unicode: '๐Ÿ‡ป๐Ÿ‡ฎ', + category: 'Country' + }, + { + alias: 'uzbekistan', + unicode: '๐Ÿ‡บ๐Ÿ‡ฟ', + category: 'Country' + }, + { + alias: 'v', + unicode: 'โœŒ๏ธ', + category: 'Gesture' + }, + { + alias: 'vampire', + unicode: '๐Ÿง›', + category: 'Person' + }, + { + alias: 'vampire_man', + unicode: '๐Ÿง›โ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'vampire_woman', + unicode: '๐Ÿง›โ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'vanuatu', + unicode: '๐Ÿ‡ป๐Ÿ‡บ', + category: 'Country' + }, + { + alias: 'vatican_city', + unicode: '๐Ÿ‡ป๐Ÿ‡ฆ', + category: 'Country' + }, + { + alias: 'venezuela', + unicode: '๐Ÿ‡ป๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'vertical_traffic_light', + unicode: '๐Ÿšฆ', + category: 'Travel' + }, + { + alias: 'vhs', + unicode: '๐Ÿ“ผ', + category: 'Object' + }, + { + alias: 'vibration_mode', + unicode: '๐Ÿ“ณ', + category: 'Symbol' + }, + { + alias: 'video_camera', + unicode: '๐Ÿ“น', + category: 'Object' + }, + { + alias: 'video_game', + unicode: '๐ŸŽฎ', + category: 'Activity' + }, + { + alias: 'vietnam', + unicode: '๐Ÿ‡ป๐Ÿ‡ณ', + category: 'Country' + }, + { + alias: 'violin', + unicode: '๐ŸŽป', + category: 'Activity' + }, + { + alias: 'virgo', + unicode: 'โ™๏ธ', + category: 'Symbol' + }, + { + alias: 'volcano', + unicode: '๐ŸŒ‹', + category: 'Nature' + }, + { + alias: 'volleyball', + unicode: '๐Ÿ', + category: 'Activity' + }, + { + alias: 'vomiting_face', + unicode: '๐Ÿคฎ', + category: 'Smiley' + }, + { + alias: 'vs', + unicode: '๐Ÿ†š', + category: 'Symbol' + }, + { + alias: 'vulcan_salute', + unicode: '๐Ÿ––', + category: 'Gesture' + }, + { + alias: 'waffle', + unicode: '๐Ÿง‡', + category: 'Food' + }, + { + alias: 'wales', + unicode: '๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ', + category: 'Country' + }, + { + alias: ['walking_man', 'walking'], + unicode: '๐Ÿšถ', + category: 'Person' + }, + { + alias: 'walking_woman', + unicode: '๐Ÿšถโ€โ™€', + category: 'Person' + }, + { + alias: 'wallis_futuna', + unicode: '๐Ÿ‡ผ๐Ÿ‡ซ', + category: 'Country' + }, + { + alias: 'waning_crescent_moon', + unicode: '๐ŸŒ˜', + category: 'Nature' + }, + { + alias: 'waning_gibbous_moon', + unicode: '๐ŸŒ–', + category: 'Nature' + }, + { + alias: 'warning', + unicode: 'โš ๏ธ', + category: 'Symbol' + }, + { + alias: 'wastebasket', + unicode: '๐Ÿ—‘', + category: 'Object' + }, + { + alias: 'watch', + unicode: 'โŒš๏ธ', + category: 'Object' + }, + { + alias: 'water_buffalo', + unicode: '๐Ÿƒ', + category: 'Animal' + }, + { + alias: 'water_polo', + unicode: '๐Ÿคฝ', + category: 'Activity' + }, + { + alias: 'watermelon', + unicode: '๐Ÿ‰', + category: 'Food' + }, + { + alias: 'wave', + unicode: '๐Ÿ‘‹', + category: 'Gesture' + }, + { + alias: 'wavy_dash', + unicode: 'ใ€ฐ๏ธ', + category: 'Symbol' + }, + { + alias: 'waxing_crescent_moon', + unicode: '๐ŸŒ’', + category: 'Nature' + }, + { + alias: 'wc', + unicode: '๐Ÿšพ', + category: 'Symbol' + }, + { + alias: 'weary', + unicode: '๐Ÿ˜ฉ', + category: 'Smiley' + }, + { + alias: 'wedding', + unicode: '๐Ÿ’’', + category: 'Travel' + }, + { + alias: 'weight_lifting', + unicode: '๐Ÿ‹๏ธ', + category: 'Activity' + }, + { + alias: 'weight_lifting_man', + unicode: '๐Ÿ‹', + category: 'Activity' + }, + { + alias: 'weight_lifting_woman', + unicode: '๐Ÿ‹๏ธโ€โ™€๏ธ', + category: 'Activity' + }, + { + alias: 'western_sahara', + unicode: '๐Ÿ‡ช๐Ÿ‡ญ', + category: 'Country' + }, + { + alias: 'whale', + unicode: '๐Ÿณ', + category: 'Animal' + }, + { + alias: 'whale2', + unicode: '๐Ÿ‹', + category: 'Animal' + }, + { + alias: 'wheel_of_dharma', + unicode: 'โ˜ธ๏ธ', + category: 'Symbol' + }, + { + alias: 'wheelchair', + unicode: 'โ™ฟ๏ธ', + category: 'Symbol' + }, + { + alias: 'white_check_mark', + unicode: 'โœ…', + category: 'Symbol' + }, + { + alias: 'white_circle', + unicode: 'โšช๏ธ', + category: 'Symbol' + }, + { + alias: 'white_flag', + unicode: '๐Ÿณ๏ธ', + category: 'Flag' + }, + { + alias: 'white_flower', + unicode: '๐Ÿ’ฎ', + category: 'Symbol' + }, + { + alias: 'white_haired_man', + unicode: '๐Ÿ‘จโ€๐Ÿฆณ', + category: 'Person' + }, + { + alias: 'white_haired_woman', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆณ', + category: 'Person' + }, + { + alias: 'white_heart', + unicode: '๐Ÿค', + category: 'Symbol' + }, + { + alias: 'white_large_square', + unicode: 'โฌœ๏ธ', + category: 'Symbol' + }, + { + alias: 'white_medium_small_square', + unicode: 'โ—ฝ๏ธ', + category: 'Symbol' + }, + { + alias: 'white_medium_square', + unicode: 'โ—ป๏ธ', + category: 'Symbol' + }, + { + alias: 'white_small_square', + unicode: 'โ–ซ๏ธ', + category: 'Symbol' + }, + { + alias: 'white_square_button', + unicode: '๐Ÿ”ณ', + category: 'Symbol' + }, + { + alias: 'wilted_flower', + unicode: '๐Ÿฅ€', + category: 'Nature' + }, + { + alias: 'wind_chime', + unicode: '๐ŸŽ', + category: 'Object' + }, + { + alias: 'wind_face', + unicode: '๐ŸŒฌ', + category: 'Nature' + }, + { + alias: 'window', + unicode: '๐ŸชŸ', + category: 'Travel' + }, + { + alias: 'wine_glass', + unicode: '๐Ÿท', + category: 'Food' + }, + { + alias: 'wink', + unicode: '๐Ÿ˜‰', + category: 'Smiley' + }, + { + alias: 'wolf', + unicode: '๐Ÿบ', + category: 'Animal' + }, + { + alias: 'woman', + unicode: '๐Ÿ‘ฉ', + category: 'Person' + }, + { + alias: 'woman_artist', + unicode: '๐Ÿ‘ฉโ€๐ŸŽจ', + category: 'Person' + }, + { + alias: 'woman_astronaut', + unicode: '๐Ÿ‘ฉโ€๐Ÿš€', + category: 'Person' + }, + { + alias: 'woman_beard', + unicode: '๐Ÿง”โ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'woman_cartwheeling', + unicode: '๐Ÿคธโ€โ™€', + category: 'Activity' + }, + { + alias: 'woman_cook', + unicode: '๐Ÿ‘ฉโ€๐Ÿณ', + category: 'Person' + }, + { + alias: 'woman_dancing', + unicode: '๐Ÿ’ƒ', + category: 'Person' + }, + { + alias: 'woman_facepalming', + unicode: '๐Ÿคฆโ€โ™€', + category: 'Person' + }, + { + alias: 'woman_factory_worker', + unicode: '๐Ÿ‘ฉโ€๐Ÿญ', + category: 'Person' + }, + { + alias: 'woman_farmer', + unicode: '๐Ÿ‘ฉโ€๐ŸŒพ', + category: 'Person' + }, + { + alias: 'woman_feeding_baby', + unicode: '๐Ÿ‘ฉโ€๐Ÿผ', + category: 'Person' + }, + { + alias: 'woman_firefighter', + unicode: '๐Ÿ‘ฉโ€๐Ÿš’', + category: 'Person' + }, + { + alias: 'woman_health_worker', + unicode: '๐Ÿ‘ฉโ€โš•', + category: 'Person' + }, + { + alias: 'woman_in_manual_wheelchair', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆฝ', + category: 'Person' + }, + { + alias: 'woman_in_motorized_wheelchair', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆผ', + category: 'Person' + }, + { + alias: 'woman_in_tuxedo', + unicode: '๐Ÿคตโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'woman_judge', + unicode: '๐Ÿ‘ฉโ€โš–', + category: 'Person' + }, + { + alias: 'woman_juggling', + unicode: '๐Ÿคนโ€โ™€', + category: 'Activity' + }, + { + alias: 'woman_mechanic', + unicode: '๐Ÿ‘ฉโ€๐Ÿ”ง', + category: 'Person' + }, + { + alias: 'woman_office_worker', + unicode: '๐Ÿ‘ฉโ€๐Ÿ’ผ', + category: 'Person' + }, + { + alias: 'woman_pilot', + unicode: '๐Ÿ‘ฉโ€โœˆ', + category: 'Person' + }, + { + alias: 'woman_playing_handball', + unicode: '๐Ÿคพโ€โ™€', + category: 'Activity' + }, + { + alias: 'woman_playing_water_polo', + unicode: '๐Ÿคฝโ€โ™€', + category: 'Activity' + }, + { + alias: 'woman_scientist', + unicode: '๐Ÿ‘ฉโ€๐Ÿ”ฌ', + category: 'Person' + }, + { + alias: 'woman_shrugging', + unicode: '๐Ÿคทโ€โ™€', + category: 'Person' + }, + { + alias: 'woman_singer', + unicode: '๐Ÿ‘ฉโ€๐ŸŽค', + category: 'Person' + }, + { + alias: 'woman_student', + unicode: '๐Ÿ‘ฉโ€๐ŸŽ“', + category: 'Person' + }, + { + alias: 'woman_teacher', + unicode: '๐Ÿ‘ฉโ€๐Ÿซ', + category: 'Person' + }, + { + alias: 'woman_technologist', + unicode: '๐Ÿ‘ฉโ€๐Ÿ’ป', + category: 'Person' + }, + { + alias: 'woman_with_headscarf', + unicode: '๐Ÿง•', + category: 'Person' + }, + { + alias: 'woman_with_probing_cane', + unicode: '๐Ÿ‘ฉโ€๐Ÿฆฏ', + category: 'Person' + }, + { + alias: 'woman_with_turban', + unicode: '๐Ÿ‘ณโ€โ™€', + category: 'Person' + }, + { + alias: 'woman_with_veil', + unicode: '๐Ÿ‘ฐโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'womans_clothes', + unicode: '๐Ÿ‘š', + category: 'Clothing' + }, + { + alias: 'womans_hat', + unicode: '๐Ÿ‘’', + category: 'Clothing' + }, + { + alias: 'women_wrestling', + unicode: '๐Ÿคผโ€โ™€', + category: 'Activity' + }, + { + alias: 'womens', + unicode: '๐Ÿšบ', + category: 'Symbol' + }, + { + alias: 'wood', + unicode: '๐Ÿชต', + category: 'Nature' + }, + { + alias: 'woozy_face', + unicode: '๐Ÿฅด', + category: 'Smiley' + }, + { + alias: 'world_map', + unicode: '๐Ÿ—บ', + category: 'Travel' + }, + { + alias: 'worm', + unicode: '๐Ÿชฑ', + category: 'Animal' + }, + { + alias: 'worried', + unicode: '๐Ÿ˜Ÿ', + category: 'Smiley' + }, + { + alias: 'wrench', + unicode: '๐Ÿ”ง', + category: 'Object' + }, + { + alias: 'wrestling', + unicode: '๐Ÿคผ', + category: 'Activity' + }, + { + alias: 'writing_hand', + unicode: 'โœ๏ธ', + category: 'Gesture' + }, + { + alias: 'x', + unicode: 'โŒ', + category: 'Symbol' + }, + { + alias: 'yarn', + unicode: '๐Ÿงถ', + category: 'Object' + }, + { + alias: 'yawning_face', + unicode: '๐Ÿฅฑ', + category: 'Smiley' + }, + { + alias: 'yellow_circle', + unicode: '๐ŸŸก', + category: 'Symbol' + }, + { + alias: 'yellow_heart', + unicode: '๐Ÿ’›', + category: 'Symbol' + }, + { + alias: 'yellow_square', + unicode: '๐ŸŸจ', + category: 'Symbol' + }, + { + alias: 'yemen', + unicode: '๐Ÿ‡พ๐Ÿ‡ช', + category: 'Country' + }, + { + alias: 'yen', + unicode: '๐Ÿ’ด', + category: 'Object' + }, + { + alias: 'yin_yang', + unicode: 'โ˜ฏ๏ธ', + category: 'Symbol' + }, + { + alias: 'yo_yo', + unicode: '๐Ÿช€', + category: 'Activity' + }, + { + alias: 'yum', + unicode: '๐Ÿ˜‹', + category: 'Smiley' + }, + { + alias: 'zambia', + unicode: '๐Ÿ‡ฟ๐Ÿ‡ฒ', + category: 'Country' + }, + { + alias: 'zany_face', + unicode: '๐Ÿคช', + category: 'Smiley' + }, + { + alias: 'zap', + unicode: 'โšก๏ธ', + category: 'Nature' + }, + { + alias: 'zebra', + unicode: '๐Ÿฆ“', + category: 'Animal' + }, + { + alias: 'zero', + unicode: '0๏ธโƒฃ', + category: 'Symbol' + }, + { + alias: 'zimbabwe', + unicode: '๐Ÿ‡ฟ๐Ÿ‡ผ', + category: 'Country' + }, + { + alias: 'zipper_mouth_face', + unicode: '๐Ÿค', + category: 'Smiley' + }, + { + alias: 'zombie', + unicode: '๐ŸงŸ', + category: 'Person' + }, + { + alias: 'zombie_man', + unicode: '๐ŸงŸโ€โ™‚๏ธ', + category: 'Person' + }, + { + alias: 'zombie_woman', + unicode: '๐ŸงŸโ€โ™€๏ธ', + category: 'Person' + }, + { + alias: 'zzz', + unicode: '๐Ÿ’ค', + category: 'Symbol' + } +] as const; +export type EmojiAlias = typeof supportedEmojis[number]['alias']; +export type EmojiUnicode = Exclude; + +/** + * @param emoji A unicode emoji + * @returns indicates whether the given emoji is a supported unicode emoji + */ +export function isSupportedUnicode(emoji: EmojiAlias | EmojiUnicode): emoji is EmojiUnicode { + return supportedEmojis.some(({ unicode }) => unicode === emoji); +} + +/** + * @param emoji An alias for an emoji (without the colons) + * @returns indicates whether the given emoji is an alias for a supported emoji + */ +export function isSupportedAlias(emoji: EmojiAlias | EmojiUnicode): emoji is EmojiAlias { + return supportedEmojis.some(({ alias }) => alias === emoji); +} + +/** + * @throws if the given emoji is not valid + */ +export function assertSupportedEmoji(emoji: EmojiAlias | EmojiUnicode): asserts emoji is EmojiAlias | EmojiUnicode { + if (!isSupportedAlias(emoji as EmojiAlias) && !isSupportedUnicode(emoji as EmojiUnicode)) { + throw new Error(`Invalid emoji: ${emoji}`); + } +} diff --git a/src/lib/markdown/index.ts b/src/lib/markdown/index.ts new file mode 100644 index 0000000..373fe6e --- /dev/null +++ b/src/lib/markdown/index.ts @@ -0,0 +1 @@ +export * as default from './markdown'; diff --git a/src/lib/markdown/markdown.ts b/src/lib/markdown/markdown.ts new file mode 100644 index 0000000..2d75c5c --- /dev/null +++ b/src/lib/markdown/markdown.ts @@ -0,0 +1,144 @@ +import * as cb from './codeBlock'; +import * as emo from './emoji'; + +/* +|========================================================================== +| markdown +|========================================================================== +| +| A collection of functions to generate markdown strings. +| +*/ + +export * from './codeBlock'; +export * from './emoji'; + +/* +|------------------ +| Text Elements +|------------------ +*/ + +export function paragraph(value: string) { + return value; +} + +export function code(value: string) { + return `\`${value}\``; +} + +export function bold(value: string) { + return `**${value}**`; +} + +export function italic(value: string) { + return `_${value}_`; +} + +export function strikeThrough(value: string) { + return `~~${value}~~`; +} + +export function link(value: string, href: string) { + return `[${value}](${href})`; +} + +/* +|------------------ +| Headers +|------------------ +*/ + +export function h1(value: string) { + return `# ${value}`; +} + +export function h2(value: string) { + return `## ${value}`; +} + +export function h3(value: string) { + return `### ${value}`; +} + +export function h4(value: string) { + return `#### ${value}`; +} + +export function h5(value: string) { + return `##### ${value}`; +} + +export function h6(value: string) { + return `###### ${value}`; +} + +/* +|------------------ +| Special Elements +|------------------ +*/ + +export function hr() { + return '---'; +} + +export function blockQuote(value: string) { + return `> ${value}`; +} + +export function image(value: string, src: string) { + return `![${value}](${src})`; +} + +export function codeBlock(value: string, language?: cb.SupportedLanguage) { + if (language) { + cb.assertSupportedLanguage(language); + } + return `\`\`\`${language || ''}\n${value}\n\`\`\``; +} + +export function emoji(value: emo.EmojiAlias | emo.EmojiUnicode): string { + emo.assertSupportedEmoji(value as emo.EmojiAlias | emo.EmojiUnicode); + if (emo.isSupportedAlias(value)) { + return `:${value}:`; + } else { + return value; + } +} + +/* +|------------------ +| Lists +|------------------ +*/ + +export function ul(value: string[]) { + return value.map(item => `- ${item}`).join('\n'); +} + +export function ol(value: string[]) { + return value.map((item, index) => `${index + 1}. ${item}`).join('\n'); +} + +/* +|------------------ +| Tables +|------------------ +*/ + +function tableHeader(value: string[]) { + return [ + `| ${value.join(' | ')} |`, + `| ${value.map(headerItem => '-'.repeat(headerItem.length)).join(' | ')} |` + ].join('\n'); +} + +function tableRow(value: string[]) { + return `| ${value.join(' | ')} |`; +} + +export function table(value: string[][]) { + const [header, ...rows] = value; + return [tableHeader(header), ...rows.map(row => tableRow(row))].join('\n'); +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ff982a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "ts-node": { + "files": true + }, + "compilerOptions": { + "incremental": true, + "module": "commonjs", + "strict": true, + "target": "ES2022", + "strictNullChecks": true, + "noImplicitAny": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "emitDecoratorMetadata": true, + "skipLibCheck": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "sourceMap": true, + "declaration": true, + "lib": ["ES2022"], + "outDir": "./dist", + "baseUrl": ".", + "paths": { + "@launchpad/*": ["src/*"] + } + }, + "typeRoots": ["node_modules/@types", "types"], + "include": ["types/**/*", "src/**/*"], + "exclude": ["node_modules/**/*", "**/__tests__/**/*", "action.js"] +} diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 0000000..cc2f28b --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["types/**/*", "src/**/*", "**/__tests__/**/*"] +}