From 3cd33d5694c97802a4436d722ed9ccfe733a9d81 Mon Sep 17 00:00:00 2001 From: eyuelberga Date: Fri, 25 Jun 2021 20:34:44 +0300 Subject: [PATCH] refactor: move codebase from type-ethiopic --- .changeset/README.md | 8 + .changeset/config.json | 13 + .commitlintrc | 5 + .eslintignore | 2 + .eslintrc | 13 + .github/ISSUE_TEMPLATE/bug_report.md | 50 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.md | 33 + .github/pull_request_template.md | 28 + .github/stale.yml | 24 + .github/workflows/pr.yml | 43 + .github/workflows/release.yml | 53 + .gitignore | 106 + .huskyrc | 7 + .lintstagedrc | 8 + .prettierrc.js | 7 + .travis.yml | 9 + CODE_OF_CONDUCT.md | 132 + CONTRIBUTING.md | 136 + LICENSE | 21 + README.md | 8 +- configure-references.js | 51 + docs/.nojekyll | 0 docs/README.md | 18 + docs/_coverpage.md | 8 + docs/_media/favicon.ico | Bin 0 -> 15086 bytes docs/_media/logo.png | Bin 0 -> 21441 bytes docs/_sidebar.md | 8 + docs/add_to_web.md | 13 + docs/custom_layout.md | 8 + docs/enable_disable.md | 25 + docs/index.html | 37 + docs/installation.md | 12 + docs/multiple_layout.md | 24 + jest.config.js | 22 + lerna.json | 16 + package.json | 45 + packages/core/README.md | 25 + packages/core/jest.config.js | 5 + packages/core/package.json | 21 + packages/core/src/Keywrite.ts | 93 + packages/core/src/index.ts | 1 + packages/core/tests/Keywrite.spec.ts | 139 + packages/core/tsconfig.json | 10 + packages/ethiopic-layouts/README.md | 1 + packages/ethiopic-layouts/jest.config.js | 5 + packages/ethiopic-layouts/package.json | 26 + packages/ethiopic-layouts/src/ET.ts | 1258 +++ packages/ethiopic-layouts/src/am-ET.ts | 907 ++ .../src/awn-ET_byn-ER_xan-ET.ts | 829 ++ packages/ethiopic-layouts/src/bcq-ET.ts | 649 ++ packages/ethiopic-layouts/src/csv/ET.csv | 54 + packages/ethiopic-layouts/src/csv/am-ET.csv | 44 + .../src/csv/awn-ET_byn-ER_xan-ET.csv | 42 + packages/ethiopic-layouts/src/csv/bcq-ET.csv | 36 + .../src/csv/gez-ET_gez-ER.csv | 37 + packages/ethiopic-layouts/src/csv/har-ET.csv | 29 + .../src/csv/mym-ET_muz-ET_suq-ET_mdx-ET.csv | 34 + .../ethiopic-layouts/src/csv/punctuation.csv | 6 + packages/ethiopic-layouts/src/csv/sgw-ET.csv | 36 + packages/ethiopic-layouts/src/csv/ti-ER.csv | 41 + packages/ethiopic-layouts/src/csv/ti-ET.csv | 44 + packages/ethiopic-layouts/src/csv/xst-ET.csv | 32 + .../ethiopic-layouts/src/generate-from-csv.ts | 52 + .../ethiopic-layouts/src/gez-ET_gez-ER.ts | 877 ++ packages/ethiopic-layouts/src/har-ET.ts | 666 ++ packages/ethiopic-layouts/src/index.ts | 35 + packages/ethiopic-layouts/src/layouts.ts | 45 + .../src/mym-ET_muz-ET_suq-ET_mdx-ET.ts | 651 ++ packages/ethiopic-layouts/src/sgw-ET.ts | 1071 ++ packages/ethiopic-layouts/src/ti-ER.ts | 829 ++ packages/ethiopic-layouts/src/ti-ET.ts | 919 ++ packages/ethiopic-layouts/src/xst-ET.ts | 666 ++ packages/ethiopic-layouts/tsconfig.json | 17 + packages/layout-generator/README.md | 1 + packages/layout-generator/jest.config.js | 5 + packages/layout-generator/package.json | 23 + packages/layout-generator/src/core.ts | 40 + packages/layout-generator/src/index.ts | 3 + packages/layout-generator/src/interfaces.ts | 1 + packages/layout-generator/src/utils.ts | 55 + packages/layout-generator/tests/core.spec.ts | 197 + packages/layout-generator/tests/utils.spec.ts | 117 + packages/layout-generator/tsconfig.json | 14 + packages/web/README.md | 31 + packages/web/jest.config.js | 5 + packages/web/package.json | 23 + packages/web/src/ET.ts | 1258 +++ packages/web/src/KeywriteWeb.ts | 79 + packages/web/src/index.ts | 1 + packages/web/tests/KeywriteWeb.spec.ts | 121 + packages/web/tests/layout.ts | 1848 ++++ packages/web/tests/utils.ts | 45 + packages/web/tsconfig.json | 17 + tsconfig.build.json | 16 + tsconfig.json | 27 + yarn.lock | 9008 +++++++++++++++++ 97 files changed, 24161 insertions(+), 4 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100644 .commitlintrc create mode 100644 .eslintignore create mode 100644 .eslintrc create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/stale.yml create mode 100644 .github/workflows/pr.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .huskyrc create mode 100644 .lintstagedrc create mode 100644 .prettierrc.js create mode 100644 .travis.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 configure-references.js create mode 100644 docs/.nojekyll create mode 100644 docs/README.md create mode 100644 docs/_coverpage.md create mode 100644 docs/_media/favicon.ico create mode 100644 docs/_media/logo.png create mode 100644 docs/_sidebar.md create mode 100644 docs/add_to_web.md create mode 100644 docs/custom_layout.md create mode 100644 docs/enable_disable.md create mode 100644 docs/index.html create mode 100644 docs/installation.md create mode 100644 docs/multiple_layout.md create mode 100644 jest.config.js create mode 100644 lerna.json create mode 100644 package.json create mode 100644 packages/core/README.md create mode 100644 packages/core/jest.config.js create mode 100644 packages/core/package.json create mode 100644 packages/core/src/Keywrite.ts create mode 100644 packages/core/src/index.ts create mode 100644 packages/core/tests/Keywrite.spec.ts create mode 100644 packages/core/tsconfig.json create mode 100644 packages/ethiopic-layouts/README.md create mode 100644 packages/ethiopic-layouts/jest.config.js create mode 100644 packages/ethiopic-layouts/package.json create mode 100644 packages/ethiopic-layouts/src/ET.ts create mode 100644 packages/ethiopic-layouts/src/am-ET.ts create mode 100644 packages/ethiopic-layouts/src/awn-ET_byn-ER_xan-ET.ts create mode 100644 packages/ethiopic-layouts/src/bcq-ET.ts create mode 100644 packages/ethiopic-layouts/src/csv/ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/am-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/awn-ET_byn-ER_xan-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/bcq-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/gez-ET_gez-ER.csv create mode 100644 packages/ethiopic-layouts/src/csv/har-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/mym-ET_muz-ET_suq-ET_mdx-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/punctuation.csv create mode 100644 packages/ethiopic-layouts/src/csv/sgw-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/ti-ER.csv create mode 100644 packages/ethiopic-layouts/src/csv/ti-ET.csv create mode 100644 packages/ethiopic-layouts/src/csv/xst-ET.csv create mode 100644 packages/ethiopic-layouts/src/generate-from-csv.ts create mode 100644 packages/ethiopic-layouts/src/gez-ET_gez-ER.ts create mode 100644 packages/ethiopic-layouts/src/har-ET.ts create mode 100644 packages/ethiopic-layouts/src/index.ts create mode 100644 packages/ethiopic-layouts/src/layouts.ts create mode 100644 packages/ethiopic-layouts/src/mym-ET_muz-ET_suq-ET_mdx-ET.ts create mode 100644 packages/ethiopic-layouts/src/sgw-ET.ts create mode 100644 packages/ethiopic-layouts/src/ti-ER.ts create mode 100644 packages/ethiopic-layouts/src/ti-ET.ts create mode 100644 packages/ethiopic-layouts/src/xst-ET.ts create mode 100644 packages/ethiopic-layouts/tsconfig.json create mode 100644 packages/layout-generator/README.md create mode 100644 packages/layout-generator/jest.config.js create mode 100644 packages/layout-generator/package.json create mode 100644 packages/layout-generator/src/core.ts create mode 100644 packages/layout-generator/src/index.ts create mode 100644 packages/layout-generator/src/interfaces.ts create mode 100644 packages/layout-generator/src/utils.ts create mode 100644 packages/layout-generator/tests/core.spec.ts create mode 100644 packages/layout-generator/tests/utils.spec.ts create mode 100644 packages/layout-generator/tsconfig.json create mode 100644 packages/web/README.md create mode 100644 packages/web/jest.config.js create mode 100644 packages/web/package.json create mode 100644 packages/web/src/ET.ts create mode 100644 packages/web/src/KeywriteWeb.ts create mode 100644 packages/web/src/index.ts create mode 100644 packages/web/tests/KeywriteWeb.spec.ts create mode 100644 packages/web/tests/layout.ts create mode 100644 packages/web/tests/utils.ts create mode 100644 packages/web/tsconfig.json create mode 100644 tsconfig.build.json create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..1bce994 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@1.5.0/schema.json", + "changelog": ["@changesets/changelog-github", { "repo": "eyuelberga/keywrite" }], + "commit": false, + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { + "onlyUpdatePeerDependentsWhenOutOfRange": true + }, + "ignore": [] +} diff --git a/.commitlintrc b/.commitlintrc new file mode 100644 index 0000000..0df1d25 --- /dev/null +++ b/.commitlintrc @@ -0,0 +1,5 @@ +{ + "extends": [ + "@commitlint/config-conventional" + ] +} diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..f06235c --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..4f9617c --- /dev/null +++ b/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "prettier/@typescript-eslint", + "plugin:prettier/recommended" + ], + "rules": {} +} diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..3227aab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,50 @@ +--- +name: Report a bug 🐛 +about: Something isn't working as expected? Here is the right place to report. +--- + + + +# 🐛 Bug report + +> Provide a brief description of the bug here + +## đŸ’Ĩ Steps to reproduce + +> Clear and concise reproduction steps are important for us to be able to triage +> your issue in a timely manner + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +## đŸ’ģ Link to reproduction + +> Please create a minimal reproduction in CodeSandbox + +## 🧐 Expected behavior + +> Tell us what you expect to happen. + +## 🧭 Possible Solution + +> Not compulsory, but suggesting a fix would be great! + +## 🌍 System information + +| Software | Version(s) | +| ---------------- | ---------- | +| Keywrite | | +| Browser | | +| Operating System | | + +## 📝 Additional information + +- Screenshots or code +- Notes or link to ideas diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..8ab97b0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question + url: https://github.com/eyuelberga/keywrite/discussions + about: Ask questions and discuss topics with other community members diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..a3f7b22 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,33 @@ +--- +name: Request a feature or enhancement 🙋 +about: Want a feature to be added to Keywrite? +--- + + + +# 🚀 Feature request + +> Please describe your request in one or two sentences. + +## 🧱 Problem Statement / Justification + +> Please provide valid reason(s) why this should added to Keywrite. +> +> If this feature is related to a problem you've noticed. Mention it as well + +## ✅ Proposed solution or API + +> Please provide code snippets, gists, or links to the ideal design or API + +## ↩ī¸ Alternatives + +> What alternative solutions have you considered before making this request? + +## 📝 Additional Information + +> What resources (links, screenshots, etc.) do you have to assist this effort? diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..6e7ab85 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,28 @@ + + +Closes # + +## 📝 Description + +> Add a brief description + +## â›ŗī¸ Current behavior (updates) + +> Please describe the current behavior that you are modifying + +## 🚀 New behavior + +> Please describe the behavior or changes this PR adds + +## đŸ’Ŗ Is this a breaking change (Yes/No): + + + +## 📝 Additional Information diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000..02032cd --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,24 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 30 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 5 +# Issues with these labels will never be considered stale +exemptLabels: + - 'not stale' + - 'Priority: High 🚨' +# Label to use when marking an issue as stale +staleLabel: stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + Hi! + + This issue hasn't seen any activity recently. We close inactive issues after + 35 days to manage the volume of issues we receive. + + If we missed this issue or you want to keep it open, please reply here. That + will reset the timer and allow more time for this issue to be addressed before + it is closed. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false +unmarkComment: false +only: issues diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000..77be83d --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,43 @@ +name: PR Workflow + +on: + pull_request: + branches: + - main + - develop + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Get Yarn cache path + id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + + - name: Checkout + uses: actions/checkout@v1 + + - name: Enable node + uses: actions/setup-node@v1 + with: + node-version: 12.x + + - name: Load Yarn cache + uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build packages + run: yarn build + + - name: Lint types and code + run: yarn lint + + - name: Run tests + run: yarn test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..8b001a1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,53 @@ +name: Publish to NPM + +on: + push: + paths: + - 'packages/**' + branches: + - main + +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - id: yarn-cache + name: Get Yarn cache path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - name: Checkout Repo + uses: actions/checkout@main + with: + # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits + fetch-depth: 0 + + - name: Setup Node.js 12.x + uses: actions/setup-node@main + with: + node-version: 12.x + + - uses: actions/cache@70655ec8323daeeaa7ef06d7c56e1b9191396cbe + name: Load Yarn cache + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install Dependencies + run: yarn install --frozen-lockfile + + - name: Setup CI Git User + run: | + git config --global user.email "eyuel.berga@yahoo.com" + git config --global user.name "eyuelberga" + + - name: Publish packages + uses: changesets/action@main + with: + publish: yarn release + commit: 'chore(release): version packages' + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..41a81ce --- /dev/null +++ b/.gitignore @@ -0,0 +1,106 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-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/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# 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 variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# 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 + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/ \ No newline at end of file diff --git a/.huskyrc b/.huskyrc new file mode 100644 index 0000000..557b291 --- /dev/null +++ b/.huskyrc @@ -0,0 +1,7 @@ +{ + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", + "pre-commit": "lint-staged", + "prepare-commit-msg": "exec < /dev/tty && git cz --hook" + } +} diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 0000000..67d9ddf --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,8 @@ +{ + "**/*.{ts,tsx,js,jsx}": [ + "prettier --write" + ], + "**/*.{md,yml,json,babelrc,eslintrc,prettierrc}": [ + "prettier --write" + ] +} diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..c8c6a54 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + semi: true, + trailingComma: 'all', + singleQuote: true, + printWidth: 120, + tabWidth: 4, +}; diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..65aa940 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +language: node_js +node_js: + - stable +install: + - yarn install +script: + - yarn lint + - yarn build + - yarn test diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3b6f835 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or + advances of any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email + address, without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +eyuel.berga@yahoo.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][mozilla coc]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][faq]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[mozilla coc]: https://github.com/mozilla/diversity +[faq]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e7e21d5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,136 @@ +Thanks for showing interest to contribute to Keywrite + +When it comes to open source, there are different ways you can contribute, all +of which are valuable. Here's a few guidelines that should help you as you +prepare your contribution. + +## Setup the Project + +The following steps will get you up and running to contribute to Keywrite: + +1. Fork the repo (click the Fork button at the top right of + [this page](https://github.com/eyuelberga/keywrite)) + +2. Clone your fork locally + +```sh +git clone https://github.com//keywrite.git +cd keywrite +``` + +3. Setup all the dependencies and packages by running `yarn install`. This + command will install dependencies for the repo. + +## Development + +Keywrite uses a monorepo structure and we treat each component has an independent package +that can be consumed in isolation. + +### Tooling + +- [Lerna](https://lerna.js.org/) to manage installation of dependencies and + running various scripts. We also have yarn workspaces enabled by default. +- [Changeset](https://github.com/atlassian/changesets) for changes + documentation, changelog generation, and release management. + +### Commands + +**`yarn lint`**: lint all packages. + +**`yarn build`**: run build for all packages. + +**`yarn test`**: run test for all packages. + +**`yarn release`**: publish changed packages. + +#### Yarn Workspace + +Since we're using yarn workspaces, this enables us +to run commands within packages directly from the root. + +Each package is named this way: `@keywrite/[package]`. Let's say we want to +build the core package. Here's how to do it: + +```bash +yarn workspace @keywrite/core build + +``` + +## Think you found a bug? + +Please conform to the issue template and provide a clear path to reproduction +with a code example. + +## Proposing new or changed API? + +Please provide thoughtful comments and some sample API code. Proposals that +don't line up with our roadmap or don't have a thoughtful explanation will be +closed. + +## Making a Pull Request? + +Pull requests will be merged after passing all status checks. + +### Commit Convention + +Before you create a Pull Request, please check whether your commits comply with +the commit conventions used in this repository. + +When you create a commit we kindly ask you to follow the convention +`category(scope or module): message` in your commit message while using one of +the following categories: + +- `feat / feature`: all changes that introduce completely new code or new + features +- `fix`: changes that fix a bug (ideally you will additionally reference an + issue if present) +- `refactor`: any code related change that is not a fix nor a feature +- `docs`: changing existing or creating new documentation (i.e. README, docs for + usage of a lib or cli usage) +- `build`: all changes regarding the build of the software, changes to + dependencies or the addition of new dependencies +- `test`: all changes regarding tests (adding new tests or changing existing + ones) +- `ci`: all changes regarding the configuration of continuous integration (i.e. + github actions, ci system) +- `chore`: all changes to the repository that do not fit into any of the above + categories + +If you are interested in the detailed specification you can visit +https://www.conventionalcommits.org/ or check out the +[Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines). + +### Steps to PR + +1. Fork of the keywrite repository and clone your fork + +2. Create a new branch out of the `develop` branch. We follow the convention + `[type/scope]`. For example `fix/core` or `docs/title-typo`. `type` + can be either `docs`, `fix`, `feat`, `build`, or any other conventional + commit type. `scope` is just a short id that describes the scope of work. + +3. Make and commit your changes following the + [commit convention](https://github.com/keywrite/keywrite/blob/main/CONTRIBUTING.md#commit-convention). + As you develop, you can run `yarn workspace @keywrite/ build` and + `yarn workspace @keywrite/ test` to make sure everything works as expected. Please + note that you might have to run `yarn install` first in order to build all + dependencies. + +4. Run `yarn changeset` to create a detailed description of your changes. This + will be used to generate a changelog when we publish an update. + [Learn more about Changeset](https://github.com/atlassian/changesets/tree/main/packages/cli). + Please note that you might have to run `git fetch origin main:main` + (where origin will be your fork on GitHub) before `yarn changeset` works. + +> If you made minor changes like CI config, prettier, etc, you can run +> `yarn changeset add --empty` to generate an empty changeset file to document +> your changes. + +### Tests + +All commits that fix bugs or add features need a test. + +## License + +By contributing your code to the keywrite GitHub repository, you agree to +license your contribution under the MIT license. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5b173b3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Eyuel Berga Woldemichael + +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 index 52bf91c..a5afd53 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@

- Keywrite logo + Keywrite logo


-GitHub license -build +GitHub license +build Rate on Openbase -CONTRIBUTING +CONTRIBUTING


diff --git a/configure-references.js b/configure-references.js new file mode 100644 index 0000000..f0b6338 --- /dev/null +++ b/configure-references.js @@ -0,0 +1,51 @@ +#!/usr/bin/env node + +// @ts-check +/* eslint-disable */ + +const fs = require('fs'); +const util = require('util'); +const exec = util.promisify(require('child_process').exec); +const path = require('path'); +const isCI = require('is-ci'); + +const config = JSON.parse(fs.readFileSync('tsconfig.json').toString()); +config.files = []; +config.references = []; + +(async function () { + if (isCI) { + // dont run it on CI + return; + } + + const { stdout, stderr } = await exec('yarn workspaces info --json'); + + const lines = stdout.split('\n'); + const depthTree = lines.slice(1, lines.length - 2).join('\n'); + const workspaces = JSON.parse(depthTree); + + for (const name in workspaces) { + const workspace = workspaces[name]; + const location = path.resolve(process.cwd(), workspace.location); + const tsconfigPath = path.resolve(location, 'tsconfig.json'); + if (fs.existsSync(tsconfigPath)) { + config.references.push({ + path: workspace.location, + }); + const workspaceConfig = JSON.parse(fs.readFileSync(tsconfigPath).toString()); + workspaceConfig.compilerOptions.composite = true; + workspaceConfig.references = []; + for (const dependency of workspace.workspaceDependencies) { + const dependecyLocation = path.resolve(process.cwd(), workspaces[dependency].location); + if (fs.existsSync(path.resolve(dependecyLocation, 'tsconfig.json'))) { + workspaceConfig.references.push({ + path: path.relative(location, dependecyLocation), + }); + } + } + fs.writeFileSync(tsconfigPath, JSON.stringify(workspaceConfig, undefined, 4)); + } + } + fs.writeFileSync('tsconfig.json', JSON.stringify(config, undefined, 4)); +})(); diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..9678f4a --- /dev/null +++ b/docs/README.md @@ -0,0 +1,18 @@ +# Keywrite + +> This project intends to solve problems that developers face when trying to add support for typing Ge'ez based texts on web and hybrid applications using standard keyboard. + +## Features 🚀 + +- Ease of Use: Keywrite can be integrated to most modern web frameworks with ease. +- Flexible Keyboard Layouts: You can configure Keywrite with different keyboard layouts and also use multiple layouts in one instance. +- Extendable: Keywrite can also be extended easily to support different use-cases. + +## Contributing + +Feel like contributing? That's awesome! We have a +[contributing guide](./CONTRIBUTING.md) to help guide you. + +## License + +MIT Š [Eyuel Berga](https://github.com/eyuelberga) diff --git a/docs/_coverpage.md b/docs/_coverpage.md new file mode 100644 index 0000000..1636e70 --- /dev/null +++ b/docs/_coverpage.md @@ -0,0 +1,8 @@ +![logo](_media/logo.png) + +# Keywrite 0.1.2 + +> ⌨ī¸ Typing Ethiopic scripts made easy + +[GitHub](https://github.com/eyuelberga/keywrite) +[Get Started](#keywrite) diff --git a/docs/_media/favicon.ico b/docs/_media/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ffefb5f2a59dec2007d8549041e81e8e80fd36e6 GIT binary patch literal 15086 zcmeHNc~BHr9`2rdnCYIY52kxS6hzUeC<^Xy4Fk%lfQT0!Q4qW$#yg(qqKQYmIR_@* zCwPHZRAP*-x*EV^6E&`hF?hsS$?j%D)gE!b!J}gS$X1Ru*{bfUkKg-!@AbT2f8E2p zdS4R+Nyv%dU;@#P*xr^PLJ5NK^LvsT3F0O=Bci8&jDjE*V?cY1!70ScfQN560v-qH zucUyafTVz=fTVz=fTVz=fTVz=fTVz=z^|tORnx@MwRaQf!w*yFLl08unmb8=A7BUi z(zW;cdLmVGrwd{L#(Ktpzw6;+!83^6=$gCE$GC&o)Rwb0_;Xx?^9f>kzM(tM*Rwp| zXy^HhPk9IWt?07>q38n|!hj&a1Oz|HJzNN2{=QPEV-QvK=j&dJtD3Y6w|_+Kxpf2e zxPdx)-)ASO9oODPyny@!u#Vny>k`HsrFMVf$v*<70q@XzKRpM$i*^IOr|B>kaB(Bg zHP)lnW57ww{U@N1c6)Z{Hyfoe+s0T3kToTQ1^8w)PIB-aI3pg);Sqmyi8^s&T;SUT)LOna6DrT+c0*xPM6aIyAXrHYdG%xZ1C&Qes(}l zQh)HiuROZnFhZ$`M@IlveKQ|5Rnm3ev>{DgBDjIn&g&h)9mn@0QXbU9GxuOpt8atz zi@;B&kN?$2W(x=c?@Pb^WfyvP)7wn{n_+5sv>jZ3narHQap$U0YaT^S?u`0h2A^Rx zt}Q^F8&H3s(YVw3w>7 zpQ1nXw|1HZJEJsnxAdeAeldXFd$*K{xYCuioDDV@mWEp_d-41!*OTlpr(1?1M!{csMF;|GR*NF;I?pFeG1YHtz|*_rf!F=5xg(5zFI~ z#EO(1qC0JuP?5SvsO(=YRHXG0UCGPD%D&a2I~9DtT40{&N*n`jmspuvEmoxM6)H0~ zimntV+A9S2z^#IN5HPgb>K>8J`<>LXOe4c_*Eo*5Y(+f+pkmoeMxMWoXXG}^ag9FU z^r%bsxc{Pv=!ffR4d9un$Cw7&W7N0BIK%hrx0O3a+R7X*et!4G;@Ze*$WH;QZRIh= zd_j*AZg$8LeBwrZXP8mSwV4}r9IyWn1 zx6S2TdtZ9`lm0I;xvk?(Bx= zCkMKA6H6U!xPnl-b$NJ*b*a5SYRba6R^WPC#&zoDy~G|3Zj4wK(+=0rURWIwCaj6< z0d6ReX)AG%p3i>~hgjy6`E2Sfx4GlwVrgv4yrL_X3^+Pa)@pl_Ebzq87EUO2kb$R% z%DR0uQ`UMaIZLVv+`OoL08~NYCfBT3aZs}X2bb|PdENqGYYOZUE zUq6XY^WWO_J*~&H;e#tB9Kf^pwD2yMbVv$F3P=h_3P=h(RRBI+YpUwz488mOe0Zee z;3Z`NGwJ`wX-Vn^(7}~pzYSJIxKIo}g2E+0>EPG-NYVr6SEr*x;ytgc{TQ)(G3Dl13g_yH9p-{zXUtJRp zPjHFSnb`*e`{>L6Fa`eW5cx~L3zD@CYHQegf3YFG)``AEy?zX?`BH&O73x6V&tj=s z&hu9j;Kll@)p1>U{_+x|aaAPxA{gfFRLnmT?UsYueT7jE$R4HYojRW0ab+RB|AtdL zEGLdCsY#~~G)>ozpPQn6InPP&y$;=*Qgri*LUe_$FvFhD3e3q3J+-QV;b!ytk(hsi zUO&~YR`*J0*<BR&$qcGtN}Jx}gS`&? z?D;W=iC+-b!89@`TwE8OClp0@GG+yaGLwVT;J;*6? z!1s~0Io4O{w?9dR+7v%^PU$>J0Z9Q#0ZD;hSAoa-1wZcZnTe-AYM%G-Ep@M8-8+us&g5YIITGvbT!uN6i}Ty-=DzN&9WZDN zUABKLHMejOwPNE~{oJLa>9VR+!`j*`ebllPvvFgNPM3?d^S+^2v)UQvU?$eg30SKJ zd#{M|V_u7%XRFFoz*K^YenF2ktTlTv`JFRN!vZrbc^wki$({T7Zi@ZEbzH0cDP*ha wB&ApyqY~CcsfAUMD(i{}4c-e;;ax8c)?wr?d&i_t`>q0>z1SZ@^MC384`>s4r2qf` literal 0 HcmV?d00001 diff --git a/docs/_media/logo.png b/docs/_media/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a82a94e80479a9c01efdf9ac47b7a8bafc15bb8d GIT binary patch literal 21441 zcmeFYbyQtnwl0Xf1b3Ij{?Wb36e;XJW zhQ0eoEs(0Q3#q-Mow?O#04d1L9zY6kwK4|-b6qG)v5KLjjgfiCG%~mC)Fpm{?{fGC(`oHxKe-TJ=}wdA(fae!>w}rwXQ9ShQrkP?IKdyU6Yx9rg54 zD?L4ZY`i?wdbociy+0J$De3aKf2yvpxNL7%7KXWNQ55Q5g*kXU?0C5EC^X!>HH3L+ z`f!eSPkCgWb(d*xJb_^KbjmwX23 zzsGFbv17Vt_uFWvjq4BYUR8bSz7l%O*8YA~k^C-7_!sSqjmG+H>C@enyvFw@UfMjb z5jf9tAj@Lpt+03I)@UaxbGJ`3aNaQUVsuqget&k`^L52qaLGfcB()Z8;-cE+>nBIAFfksXjwgt&b5d&FOsHb=}FltXdbUa4);U=MTY<%ZF6T zzK`-=?)S3up;1<@J5S6O(NUoGLm30#cEk1;R|7=6IGmjk2n)STvV`vy3m1HJ%;SL= zfw#&PRJ9f0aA>#K)Z){#n7VW^I^R;N^CbxR?~{?HfJJW6{**D{+B-UO6ug3ut&LKX z{M_;{p2+6WaI|GKMRlkHWNCNJ8RsvG)9Gr>dh$W ztyc?q_2sR>LJx#)m>nOa2>2dwO_gl<@Z21)w*q)I4FJa!xXfG( z#$^@?SM}r-uZmL!W1Oc&|Iow0(;NkZP8YQJQJ@1nn{pf3=mQ0snbT$v%4e{$X(yU~)Zp!AM5TX!40_T)n&rE={f;j-YBmawBk8G0lGFS-(o2 z4dX7Kk>7Z+zbNK@zt6ryOVLA7kJQmKLy7O?UdairWK*4CgT=D2Sin-zoy}hn>s)c3 zVBXWIdyLJp?>MNYpxS>7D?s~Jsj!`G@ z+!xfQ!|C5DJqfaT_YFSb#H9k>HYNVB0KOLOF`H>duhqWoSkRr1RK3XirWo&RvS*d45Pn7ITF^F{c zB*Pjp?x2>Z&J00kuhd4eFiEU2-`P|0E7ou~NGUC}(&Bsnu?=!91>wR-aW@=VEJ}5% zhSre((F1mJBdUW{91VQHaGvESeX0?@&s%jwKYFHi(z$~ID4&379Ck~!nG)WGL*CYU zDK1{>HBL-&+4&e1SmerzrL|RP1h!(*gDBz@TRuI+3T_xY3moz~l2e)vIrCyP0CO2k zO+ogyNX&8N)Ad>Amn&}t<)$llec;&UHx|9G29-|u!-BJ){F)ZLwqiWUUeLh??>l>276`?)OJbDa-RR@`Qv+LL!8QDdL*S7%od& zap14k2~-Zc4~Vh@>1=5U`BP(R8h@d?st4%g+*u(l3~0us&aN+5raGKx7;8)3i!igb zO0t)*sMrA`@ye7TI=*LoJbZVGT_qSA;YIi>1gy~eBnfOrMJ4Te!eGsfmefp|+6G*Y zJzlSo3b%-;5Q9@xQ??w|^ETX-iSnVfBw}5u5Th= z*c3d9!QD?$7YSQr5%q81d)-R7QZA8T=wZE}EUwhiOflxi$8ws10z0*{5eJMz43i=S zqca5@XGo%RMf;(k7>zWuGQcHiHb%9JvoV6W5w-oWoZn5iz&WBVI!~qAN*XeT zJ3)sllotA+Z_7g&&OoaYSo3D(&hj}yeZK*Jx|-G2)9k$WS@3Re4JPq|_aT}s3lG8r zQ3fi8&HC{cik<~*U{|&lCl%q-*2-+%vDONI58f zsXQS?rJ?eKqipiQgCoM0^0el}$e3N+!1&@_s-d6=FKoo)N)0~&h^H8; z)p-h{o8&6Ys)7`7Q9R;*sY?)%dg`98MX_pcG(}eT;wRJ?D3N~|^c9N?#_=uDgR3Iq zLmxN!P{YuLxR!1l@dF~5Xe^6|qSOoa6Q`j{st6{He#%Vzl~xIcIzPLbuRQLja5d!P zP?f9|Crq)hiK46IQ*f06JBqaq#|rRqh_arg!hQn1*bgtW@51F?N#sWH@w1qjVH$|u zsn|4UN2pBSpEIsOszbnr_J3x<6DU?_%5mIt>LVXT5vf;%uS^N35~(im?tl}|&&7C9 zi!70x@{RjJICZE59u9thk6^Uk7bRwNI5L3-aX1#-K|?7`f+2?qFB4Xi#X6RJ)h!#s zqg|thD}e!DM<;vA^&W?o{OiTuh?2@x;n^8!NuyuLfpv@|pm$2-9(h8t7Qe&0itB)g ziM>xCT+4K@&$}i`6Oki}WPIKWA??ecRdf&MKn8Yo0)D(#v{qJj1u7Wz_%L28A8XMd zSQuvm-ubfS8QS8N6uMZDYi3yYsYF+>s&4g!@pQAk2g*b`vSLgAmnKzyOlSkSTxIN$ zXn8EMfpUGhA*Hcn)ik&OIb0Y4}5 z=rT8P&0?+mWobe#m*DA;8QoM$XzIqroYmpwCQ08RumoPNBl^OjLEe5)7=sZ)0TXQ- zI4^?>v`ogMWvoG(?NgOi;)RBXAkLb5f>g?ite2^3yXIlt-_#>W>;CIO6RjJPx4$GEQsw-wMj zP~ylg5&J>hUm1KQZ>Ge{rYp591O2dn{aA#q8tGncYQHJ*4o9xp6@iS4Bc4_9ic!RbXy^5EnLZ~Q zHLMO8hKW+mHEtmJ!pjOHTK{si*oQ>5M$|y8o(HOOuQ;VJW$_6V@ea3W*u)Wui|`)!<5$o=S6A3MlP7wb@YG zb!*##u{I4o`k_K@sGl)XoU1dbTkz3GrRuS5huV2_qn`r<>g_ zuj6G23YFkp5GGm_K80*fYQMul4(wA!n5pPNEw-y<)otf?51k{CS>HzMeTEYR2VFt4 z_ELWp0A=t{7~3kI5hguIg{`VxzB$L!O4g_OGheUGrw=EPY~s%Tg6WQ8k#>bngr0nU zjeYNS!fd45cf&!QHbzH1$a^qmQ0ks%%&>jpMP{f%>4BZ}p5flDAeg)&QbI78WANuk z^>>m7y#aWBKRKv&ZC!`?F)*U<7i=`90v>=|H^Ic>^wW_U{AG?E!|qo>SKrhpD|F;&>k#*u1i7;Y*MV#F@PZ}Sex`3NJ>jR zuqawS_^Ecoa)cH6aK?@n6wH1RK)MLd@q$Fy=zU&|<=$G_76-G2rJK7|w$e#_!cgB{ z#7}Y@E==`hbxnVv%W9w~uv37LoUUhf&kTX1L;5L|%jxqH?MG)hupD{H+)*i_ zwT#Qpz#kV>oue0+OH}@y%J-h{X=?59-3W0{*ssj_TgeZx5wf-&_t1_GzUNlZiE!s| z-KV;mGnOkUF^F?$V`dnvc1a4qP=5x1t{R(@#ASQ-U2%w4zg#^_$k^WjGYyuI(4+lI z(*qcy?Au`je<>i*cP4=_-$|SDiM4&~2)>!8Os!yv1rFT8pW3tdeA<@=?_XaO%`8BX z6V9qGx0~%JT2LV#I&MNP$jRp3`FiU+f6;k?)m><3!S#twjL5!O-s{h?A(Z9<$)v* zBoXG(rq@=l?$NZown%9kFlbV`_;ZznsYoTEeq0X)1t@@24P;&e5*ojMFD^DIi7;{=x! z&mOI?EaC;`)byyt4xHL((Im(Y!+DuxC#*>uAGyxUj*!6LK$+*mLRCv|h!UC+cmz&A zV&Jt6H?KfSs7eR^@+|D+B(}lF8JCX-skL>6?dnLR8E0aVw>EKbLK7}6%yU8S8fZUi z`r>CZu2ABC1%}F3IiT7|VAQX`SuYVlT$d`yVu}oBVhDE7Pf0PpfV?V={G_rX- zElR`rb9!kYr|84{&b!=2xf_M^2L_YDH<|XhZAmJHqt_i64RHG0nGplv!l5QNR?mtH z%ePS_qX(cha;l%knSj*jXOvyfC`)K{pwc?w#rX!v2$RFj_Iu)u*Yhrt(=ogi`k+_n z>*8CL+}&tcFfcTFtGBZ^Eky-BQ#%_bV>3Gw0F$eY{oC0b7?^;ttG%(QH2_3v0rf zZGn8Qg5-aA`QEO74>OaK{(*q31kJsc)JrMw*-Og`IwnqTwIu3*qQ7cEtpw(d3l*x*qGVa7~c?#KsQ^Eu`8o3km5JR z-#8=yKvPF6dyti#E$MGgV-q_kkRUnv+dS#t$=_y8C0*YJ|E}Qo{U3TD$c$O`?S|uR zJ#PSJHWn5hMiw?kHeTkx%D>GjD*i*-7Wj8BzWI~c)!3eym5GJf#^zrnfFMcdf9m^B zC4e8_jzF1J0YEz^M^k{LGr$%^@mHnxpPhhz)#(HT{2uya_h&P6<~O7MX#T5=w5+1a zKV*Kp(Zb5c{*T0O^k0!?rvJd%J2`&-gE2E@27CtCycq&~V`lvqJjlxYp8@)p_57as zUkrIu_YeMmLH~!p{@C)zuY3}ArcS?=%1Q{5|F)OU%+A!xjPK7Sn<*O)H>(*dBc~Y$ zfRV$5jhm6z#1z2D&BDdOVhrE`aB;Ezg-X^I2r{-c1^lLZBWJRDn{1mn+twdyyO*&7uno0%Ce4+kqF zk2xzBBL~-8rtolZ88fnQnDMZ30JzNA%{l*2{f+~lsEVv0IU5tpKSxwP8-vX49Bl;2 z6|8KXT>m-o(aHv(1~UHbG*&Lwx1?w1=H}tyPF1G(?JpY9L zgGJO43jsQ`Mw;Xtj z^IK{Ci8Cq9pX{UkSG0>I;4Me!S=jklSjhht-oJbuSzh934^X~`Vf25zl??-~7BHv#VRN(g`gHQH%XHavpxBqMfaQxTA z{f|Qaf581k{_joWe<%J|*x#hZ?d;v&nyMv8*~Rw1RR5m<|HhzTWeTtb+Wl9i{}u8# zxBO*a@MiPh#@_ZDZ`&8PC7+`h+fq{VsT8WFR$cl^q$16)< zU^LNQ(SkBRRWJjU)$-`DVEJXx`c={yLcZ~Q!uqB{Hib~em(+44Z8;J3y@3az92(XK zy99-4q=~Nq!G8@kBsDcQCp6C0P}LG`GqCrO=QQJ|$1S*6>kvnYDbg5dQQ zO3^bhB2z%38`9j^wF02f5Q^tS@VGW=4!>*3OuBXTk~lr1H)1;4_(q!&V_8P& z3*V7EWt6EW;oin{!Dn6mau5pg8)F(PpglJr$(+A%~HX?YkH$_oyP%I^93C2VS(YV3yQ#q=cZ=5&)k;z4xBvIViA z&)TVg!HC+qnA(_y!az*PZ%}aPq%yv9r(Uadaj~{OLj|&f*W@pFZaPA78%EMkibhX5LFh0%Jbr1@{jP#kUAvuM$oIKRiBTkmxJAIuZqXA2V2%c|`1(^S|fB1fhWJKt3aOgEJAabhIqS0?z-t{sRDy!l%*gw-L{bG5l-O+rQ zT5>^LKQO3oH^y=3a*Xb45Jv;C(xN2alAyel{oZHSzNqJdGmH6K`D<*%cPh=JXb@GG zSps}oHdi-(*n^~ZIpl($(s$|($Xwi0V}W?ZT|RMZ6F%K~da26duowNY&)oB2vs zh!%7y6jkU#i8godsx6^c_SsRMJ-G%bmuJ~zF^a%%7A7Yr>LQveg~18LBq#seL1XKp zWKm=9!46w|XAMp!$7aBuynG&Bt4vCtJdgc#&(r<(ZxEtNK%Ht;yzKh4c zr(Qkwux(-STA1Z78$m5=`e9Ww7sH?XW2<}JBAB2cxawvn!vwf{ja<=`#)g+ET?&N| zV$J&KhSAD)2<@!3kx}1$O^vbL?RbJ8ITPO_=MmA)C8UQxpj2a5LL&IQ{!z_}p=5Lb zlhU(oT(PE9#?OLt zq?V{rv}lgT!sAlC0$S#Cc%9^VQ}226Ptb2T*UIlAE@kQ=9{mzOiBy1lvBJ1OX!-Y~ zueZ*l7)`m|h9xQqKf?wORxkN4m2ytpse>EukHC6FXeD^+jvSzAN@gL>QJOYawp?%k z<}g_?QqFFLrwxOHZ+R^88Ej~03E{hs+Mt$imlJfNHj}%HulQ5oo@Czbq;pJjYk8(3MCLz7pKjLs`P&+IbX0n;`j6(HBhwaK9bN8M z=Qx>|yOODv6U&I?~-SrB=YGZJ$xCm9QtT@YeH(J{NpXXfQyW*xs3Tdu(5J zpL;xKNVzV0hfCo1VXd~HeTLhqhXK`M-~9f>ievQnXs#<|H*FT+uU|dVKG@xq2V-P? zH444g2X@+#ldOjt_HuV99klbb#`8T@F=#iBV@^G`iI{!(0>YR`J3s zJZYxFJOl|S&AFZmDkS0MaRTjGY!5r6D|T>x5J&A1w1H|v(gS~5?I;m`OmA~A`aH|+ zfda48omrITMwGL{`5m4{Fc$!bXD4!dFeFY7Bd_*7hhNh$Vjly$f)ozNe<*FO!IoAI zSF9t<1m?SinIP|RW*I6_x;abCF~3Wq15fWrBqxO-SIeO1Lsv}VPF2q7vq#sS(yQjw z-riM~!nm`CTE(jNE#D)s`zHK4*~G<7cj=Th@i`-smXY>Jk83w9re7`3amgB6Sgix2 zqixT{5M~M16M+Y_vtC$83ZK)P>u?C!p64T4M&|?9FnnB{$r7rkP&q$Z`z-ut=oyGe zFfS}4;fLwTmul2HGv^!K67Uw7E2`e3UC0O4HOMT8sQ$jaa1nw^a_@Ml$NUOQ9d#M( zU*C3L6y(k>T_A;V{0vBDLQBN)%#dZWw>^ob}ptr|llSus# z6i=oOcws6A4ILVS@B(>XJ7(<|tJuPBY_#8M9Ip0;5VappZvHZ^Uma>6q^7juEk4U~ z4V~R&L3Lh6s-cL7k_1j*LvIgF02BD07Unm83-~Apv6oEO8Cc)Rjsw?`Sm06w{|yWFuIVEO7=qf>{Lb9@|N`7};f3dH9@7oLQpZ9Wok`0^(Ql)sH|t7_meqRlScnqwW-2!JO^A7LGq>U9%)oarf1t@oYSe zkxh-?Aa5$t7f8Mve|-@^xtkU4~uwClTR9hsywg>pcM-Z_t}})8BpM`{Ap&h7FlaK-{8j-b*04z;igS zUqdJ)N#nIFNhAE+Y-y6YU7u1N7%(YzBS$foM9=3^1j~8Y6*l6NwZf}h;!4%PjVp;8EpP+$e74?Vs3TT~yWT9-pL zBOc8pg#WtvuGY^G-ef7K@NlgJm+E4!u0X2Pn)qaFKxKH<^Z2F2jSC21U(88Tjxo(_q8y4LY$HX zG^OK;Wm??C_qosZ)t%{luhp*XiwJtO`z-=lhE))3eHWN=fdVV;QSAhq2heMuM3g4X#c$zHekIxJXt%t6GyKGB zztuQyr>LysbD6)j)zq8{47{OCR(8NQM^q(hS$JJF}=tuKLJ!7(;lvF96!Yn_{3Sw=5m_{gIT9x64JC} zFZ?mLjYH}Jn4xmE2KhoSZSg6-+eojDfpwf2FIJ^ z1@cWO&SLP^E>>&5X87@Ax&BW$_7y`X84j{IySwrhI+Rw#V}4smUUD0VXSmeZZbce$m@_FAow>;_ zJC1e8ca3w%+{xN%n$n$hJQlj~uOs@(LG?Nx6p{BrBRjO&$NWAf1?I~cF&WmrXQzk1 zjLD~Jg5$lf);GjnhH+!XecNSDN*YnAUY3q(*3Lq*g{g9#ROziNn5_=OJ8J-kY4J>_ z$U(J6OBFqv@D6&7qh~V7drxuOQQH)EwbwP{)5o;o z(?lOI_bvqwzuc@|xcapO$Rpxv7r)>rVYKJO<*at9rGg6QB72yYFGpl)&$t$~Z1XAm z-p2Th%B_nrC9lp%xcc%kYK?T@w&nW8tzc%dOuqz#RZZN&)MTtpKZ~eCbVlI` z$L@P5`y9(Kca+1<3I@*8Nib*2O4a7f#;1CY4m<{TNP&Ald9;#v-;B-(9<(xlv8|2z z22`(1L8^xDEOERs+jog5?9;8eGZzmS>Z?a^ z7SQ=)>zlu4+np!M^=0-YxmTA?7`}}B01n;MYgRY|s`U~8@baJYEn;LZc>BtUaFb>w z=O&j*OUs#p<9JRJ=}Hxi%o9!s@l$+SPi(;@MaPF?KFRO~MjHW)+;`X3c(ErA_4VDD zr&G0SF$3TyC}pWDj!%_^*|H#??kW~yC=x12I1^LZqIIa;&9W)thDWo^9ljNj?q+qa zAD9imbMj@D4;D-c-mCVfRjJ=bX5NROl2|F;DDGU6#Km-3F(<0eV8~&^2TF{Q>WwD@ z{RMV()8e_X2V)btBP<^D+;_gfkk~p2Co^Ees$nTvC{@q={IzotdLDW}Se)3HrqY>w zDpOihl%&L25?AhOv@ztqDQr3Qkyd`7sG?d=A4iMc+|69hhIvOnup@(Ii@KAfci{bp z<*9>5DS-}odd=d_A#JAFt!)0mD(oS2rm`AtOf=abjuRuWeKUkfZermRaAy}M_-YC5 znJ6k*Sk=@^q0wJBr29iD=>Aq;Hj{55-HJfVUokAe+AX%_*7YbV6)S%YEgVfiq{Vj> zLMoU~c8Gqdk9K#F%D&kci2roa7De69$Eon?*~ zV+7`keZ*_zIt*!g(}QYHG^v<~Xw%zAK~QT1qp8D)#oRD{Mky&XBL;v%FG?m7zo9U? zO?m8<0*mk}U<}r>;q@WX3N<#xrGipj%G96JN85s?N4EI}Nt@P5T7`2d^cdXzxE_(2 zc>(qu$yslrw=a0;C)?dnNvH~&Pi*EC>S^c%V=Z!sSq#JeGYEQA=EQ;brrpPG{2P7Q zG_On97i533)8{zod_8E;;Zf;;zxfx@FW-^V~btD@~Dskz0ES5-%$f~AT&P-wet35|wh{VOIdP-VM@;gF zWm03(dZrWRS=wYW{O0TV8})Gj;ntV#uj7F0aqx+n8a{^;>MyjNmE2S?`u^AE=6P(5 z{Z{l!O1jx`IzodoY<43Gbn%SB>Q!PMp#+Efpxp551x!R^_pUqpbhZZkDXZjXuhXBy zv0TH>h_RBrB1NLq4TLpaT~J$y5FHAn_#Jg$Y{>-d@b)S5={sIF_9%vhX?F^GTEwxaPOi6hLKZ7c0ntHltEa&!y${l>LF=eSPMi&@)`+gFEBjw zw=&Wzx>i_oFk`Y`HvOf(JK=^0rDOhJFU=mxrR?m@jsV`+IwdV&byNz%5gLo;Vht~5 zmfhuo%q}{YIQyCu4k(sb82GG8lBcyTzicygM}0`*gwTi4#niFNCJo@`voaYiR*#GY zP$ZR!9&q8RH7IA2+C+csRZwn0Y?T%-{#hzJaR4WTBfV@G%{%K0d?nsnoLpY^pV#S9 z-+-jrMcJCDSrlFAG$3IkvGO#)(CTMMOl0%BufAO^wU-(WKvauAErUJNb{3iN1===? z28(@(dbVPcW>T!cM#62e3q?G^S8W}Npa*?ek!UCjSwr|zMb&TB6L?p54CXa5m0U{@W)vnb2M%P? zv%ci=@u2%czN1V!P0s<;$|kis#laVwF;ohLWvNRlO>#5Pdd(aE`5akWn#!cx8@-8V zM}5G?TRy@9H31`p{*tN{PLU>q*vZ zw8G2Cv*k28KXrJD6g1}XY8+#6a4c@MNboqxC{9uLP(^&Z;*_`>QMxZj{XB%xx0&AJ z0Xa!yEFz_O#Z%6xLc^k$McCntLQhxWbgR z9!XxOyW4PXADZ9iH&6|0W!@WY=!AIp`@^3O@r*B|5&7&NAI-OW6d!)cjZ|vE2sIHx zLls0TWp99IEhcqSwsST5^t4A2=)7kBeb#ZLRadUM3L_2o=3%gxTK9c^|262-1-;9R zVhvX#5ShJ*#sMl<1lQ9y0J0g{bwPmwCh<{0Surst*DI2Xle}pVZx~fjjqk=qc*wi0 zh`6ql{`C3OC-0;zJ#n|1Lsx5GQ6XNBEb~=+V@W6QYyP!}fhA+lG_NCUM+I8V`wfe= zf=I9Cv80q*+%yf>?7ZpB^6KW->96H}v7Y66J0m?0N6O5)u_qokPKSaIt<>C`Od*`N z;a+pM_VVB6n10YV(aL~mCQ;<@%|B9nfRXKx! zA=Bu>*nF1h`Fxj?m0F#nBTEc^!@S2cjm+6-L~x2 z!*PQixlz_18=w4K%1aq^X=PaXkBlv``@TZlg?89sq$IpRXMgR(Yszka?LH|lPlUgH zZ8oWc7tKx6wX5uf$jk>DDMe}M`Z@UgUa7_72M@i)yxGC?ZRq_|c#N}E&$NLgfbhl< zVtFvdFJ~~XH(jl%t!<8r({>)#%j#n3@TL0n+QCIZR^2^0e%CSxiHD14;OlMVgY16N zwcrA1XpBH?_CsY+)U z{W*+qV%I^7{%mb!D#V=+xu`!A5gfzpp7Yf9$9q#}$x_}AIAuJ*`InKN|q7VDGaEHEBDjB=k-HW~7X%#CIb6ZaA@l1nc6>W%i zx!B?mT+!fXc1|of*+sQVK=dG9V^&K}a@ZEmCTEULD1{DgM z2aojjKxt(3F?u#@&l(}GCM>4suc1UXU(Xm&l6Gz~5#L9qL}H~$dcRfJZ_G-{uMSt+ zc2uDAVer$9=bx*1L|*qkxI{$XgkF<|ge34oMPTh?zCl=MQ+GU4(&DX6)Idb2UB*FZ z203Z8VHX3ELOg~>5Ip7F%r{24=eo`^(@xOw9ObOEly@vk)t)7iPMkTb6#ny%+l_3K{Hl@GY;}0YU4N@` zjts(~RU}sM@<<`YRk2`WcIMCSD>B!~Axs}~3Jr2pMxMsHG4&JU7VHOdXtgpdhS@*Z z+70NP6<$&s&n>MfGM{O7#CC{kxpsvod$u^5?!KL`m-SbwP`P9vGV_XMJ}JL*-{MB2 zqcDuj-}Fn;fTWQgwC*&r0~uGcFmj_Qgu59gv)1!Lv@m@dT)!jMly1L6SQA}?{V;cr z3wDDjvHg>kM-z|Kuu+-S(ER{2n{$pIYJI^cLt)>OY51NEOMZCo9(qRCJZrS@rms8y z1w;FAT(mtuZbAZ=>+Um$my(pqaK`2_#m~f%n6SFF&0wCb!1@G9U|Gxr4Kr>WB1NW+ z1GA(O=}?RCqf1yQz4mpe>poxZJC4)H2sFBz75(ojLaU9#fRRQYJF=n3c42c`x>IXL zdwrxUFC5n&{E3^c?jQE`)8~&Aa@azJEcvqmce-dt`T-~n?J{Sb9`HX!n5eN_$f6W5 z2AYJQLJl;!dPO#ZXatm{JD)X{G8s39y(L64ojy~T&am)Vg^%NSkhg_&@?O)*yN+Et zel``TEDJc7PY;Mzpg4zaBN!f#XUt4ze%;9BZ6;&$W@lGqL6tmiC3HGebQqoxS?8?EBiMz?~Do67OO$ zbvG;ZQoIwtXac(DlFlNEKqy}L7&hu-w=_5q(s>?|7z{^IS>k<9qxtp^Li%-LDbaim zlyZ5oo}gg_{@k5=xwx47yVqL@!^72IkfrA7o@8vlh*-1gf1oo^fhOG&nuuK2w~LBSmlu}=MnfJ$$#E3->UVrg z$wh9ZGFxH$+=>^33Xtyz&no=dBm8&l<3~BZ+HSW;l&cul=%GjxxAA(nb3(kfGi8a> z_;&WC;YNgM@#COudx5{6N)-oQPK z6#A{?K5#$jLFqtVuC7;Lmyv@|QbH{5XBaxu(cSx27536!`(syx(*u@(oFmRc&>yI^ zLi6@iYs}3Zix+O_XG;%vp@>UlOLE1U0>^4^bvu+d-F9+(i!5)7b-y&yIks1K1Ym&; zWgrVZjyBPVPFiL#)*@eN2{gohKom_%dq^+*)m!)yUYT$w_CgNfMaTA1Ayo!+LfQ*s zfc%L&=u^-VAH~ay`9*C$?K&9#eh0nM4gZ_%eP+>yorh2cGKYH(x&1i$<2m6AuHMM6 z5(v=l*~+9U6VT&IJSbVV^ETL-(QO95x)FDF04>!Uz|{r>E*B%;~0+fV`X;5BFH?W%bWPr|`dXpGh_4fQQPK_k+)mx~^n0gwzNsMlK z6r$$WX!)HW5S-_Vm8;V{H5%CY0o*$y(uJZ&4yBp@lPdS2bF&H?7#Pya?{@+8Y1xia zEL&R*17a#7jI61z`aCj|I|&2>szwKMrRdM5BlnXdq@e5hdJ1>ch#54W^5{gA(LKpVwPNh)9?D^J zot4dHS#Vxg&6AA=!9mZO5LJ=D_lYZT#pwYu=LqH(dj#-qYfb@skL=u7p%}^9y{dv8 zmXZQk`k9ZLncsAt$ks@5La!XYi;79E69rtXc%i+=DyHe2a6B7{@w0^qcS`wGXu8CU z@BxA3TYe(;m~DJ9TM2m~UA!*xI8ZH8^<`t2yU;9=p>&c-jnbkseKvA;;aH&s}Z>x%z*eus29oox6KX(QJJ z{j$1POgQJoc4f#!$^C|(cX;TjX#hGlpQeMp_T&*fBCn_!^CWXug}$iylbPv=r}@&y zPSR0y$5Wi?jb0=Yh=h1suJ?Wg6m~0$G-Hhd5UoN86U!aC8)*=h&zlf}XhOMeikcg< zPLC^M85(Q(4UIi}6`AJLSh14*>6y?YpA#g6nTfngm0a=RVfS{<&kf$k;jV}jlJaAD zHF5LsD>v@V2$^eGNX5n~@i88_U{{$iHRStxMto13mm5Rav2$qEnw8LNDC{vfIvC*J zi_xAGu+X8#q-Yg5yr&ntoQ=tcIfy4`W1Efs0O#=Ag%61h z?-%i*=gcrwyovMadcEQ;e1z*PKTSiEPkvSN{|v3vPMWKqaq7Qq4lhmuZN8l|=GL@0 z1_jErdr1+2-go>`A*Vw!+|wB6=;sdQmPzWw_|A+^ey(+VdOAIMnYIDOs**mDphY5F zUAhlJZ%=RrPcQJwS_I7sqPn%BRF9XD-ML(E|J3_buzqzYGFfp})HxaWkXp{)~*DdA&S~)e5jukNA1y?k@JriZD0wFQgd4 z@8K+sWU^8|WsSTgE=Hr6`$YF)9Cg1{kpjg&?LC_~5vN@tQ+?@N#6+pvrb zXn*kloy$zA&>V@vH9qehAoW1t_v|~_ZuMR0bZw#jgLb109M&05?oS7U%`vYR#}?18 zn9wt#BjvaR6dwhSBdv)c_dFWPz`SEC51F8#n4K(=pX<DR9i}pUb(o>Iy zM$}ltQ!c~s6*o0>-QudLZNR>Mb%w7|F)s#~P zx=(udW>GJ9BUnla5b7c_gY-oB&b z+$h1EusOgM&@xv3^YpEiZl+^ACm)XN-wB_Jc@(U4a2I0-pr zFHbSb{qAAnQ8J+IiLSMu=0Q>|yOHkeMwL8r7bL5Vz^jF~NtB~< zREn?=jg>22Nv&-vlWU8)w$W5(n;3a!NM*>A&AG=*No%rA!rZy$sJ*1gQ6ZKQrRf^4 zukYjgFMc0>3%4fG`5TrI)ycb&m+%#|o`HJ0^+dh3>od`wu9p=5)dDNFs^|AG;#Oon z#~aFSz3wBFH#)Cm2~ev33inhgEeKD@!X;20Su z=sVA&-+pC9HNA`{21xZMTJ3SfQxMfMS;9bYx^VE+9kXcef;uaR-LbE_6cB~OrHzGi z#5nw6VrA~u@HDftoD5i-@B=gPi)ROV-@c*)WG2XTzPI< z5z3i`6pfV)!yhm;FKPM zYxJ3bH6BSFu@0G>nac^>?DA9x+}wd=6cQllZJ8||db6PDomVmDifq*z#SwpDbi%~` zj)et8Z;71)*Mn?18K8>TjodHr@>-s}aqjJCDgw`k9pyg*Vz*Y7Omp1}+vH(nU`2Vu zt2zum5*LbTGi-wsOz)s1HwT?|Wf!H;wV!PK04ft&5FGj0b0;@GaVIS_(&G^CuJtfO zi<5@XkBPf5^)`^RaHxuvf?q#J?uoy`R zi&7uQX24;RD%;KEv*hQR<<2KGXe#n3>t|yfKoU^r(-~hK3Z<;c{JKhx$&4^NE%^{b zWcia5?0Qgc?+4Y}p>}oZE#(rF@U?V%ZRzxm55L)j;CS2R$i__FDNnj`lN^YysKKVh zwl-y5dEKeBh*4CtUHAwZqF(dDUoT98%6Pz2MV8E;%8_#d3-SSB>bPaH&&r@IS@!eR` zRNTePTStv0znC1wIjqR)x+0e%ql=*6dtAworpS#_)zO^U?VK4lm&nsO5-0)6uQ=|uJ-UH(Fb_`xv|rv$9+%;iXjj{ z@+yjBy387r)^Y)W89#L%mGY&V=;ED@&u-+ns-^RGY-c@oSHLb;IXR(gOe$Ayq4x~3 zAp4PbWioVH+IwMIVBbuhKwwvw&~!)NE#JG>tmoB`NTdyqTZEUTWI^wl=VM8qk;k7* zp>)QpiStVQ3ixA^;4G)(-gvw%XkPo0^!@>6Y3Rro*U=(B7McTIFDe^K90ZhqE}$wk z4>`g^_HZ5DGy$Ez)cV7Wxbuxeaj|Crc=7Upl+wlQZ)mOy{1RehY#I*ydO=N9F9Cju zOzkzxNYLFgG0^w$hJJ!^ypWIToxY!<-a~@5*^5NNoZHh+gff|zl literal 0 HcmV?d00001 diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 0000000..9500176 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,8 @@ + + +- **Get Started** + - [Installation](/installation) +- **Basic** + - [Adding to web](/add_to_web) + - [Enable/disable keyboard](/enable_disable) + - [Configuring multiple keyboard-layouts](/multiple_layout) diff --git a/docs/add_to_web.md b/docs/add_to_web.md new file mode 100644 index 0000000..f458800 --- /dev/null +++ b/docs/add_to_web.md @@ -0,0 +1,13 @@ +# Adding Keywrite to web + +> Keywrite supports web integration through the `@keywrite/web` package. +> You can use it on a simple site or along with a web framework like React or Vue. + +```javascript +import { KeywriteWeb } from '@keywrite/web'; + +// add to HTMLInputElement +new KeywriteWeb(document.querySelector('input')); +// add to HTMLTextAreaElement +new KeywriteWeb(document.querySelector('textarea')); +``` diff --git a/docs/custom_layout.md b/docs/custom_layout.md new file mode 100644 index 0000000..a0d4f44 --- /dev/null +++ b/docs/custom_layout.md @@ -0,0 +1,8 @@ +# Creating your own layout + +layout definition files are simple json objects. They map keyboard input characters +to special values. It is possible to manually write a layout definition that will work with Keywrite, +but we provide a package that can help you with this. + +You can write layout definitions in a `.csv` file format and the +`@keywrite/layout-generator` package will generate the layout for you. diff --git a/docs/enable_disable.md b/docs/enable_disable.md new file mode 100644 index 0000000..07b5dfa --- /dev/null +++ b/docs/enable_disable.md @@ -0,0 +1,25 @@ +# Enabling/Disabling Keywrite + +By default Keywrite is enabled when initialized. This can be overridden by +setting the `on` parameter during initialization. + +```javascript +import { KeywriteWeb } from '@keywrite/web'; + +// add to HTMLInputElement without enabling it +new KeywriteWeb(document.querySelector('input'), false); +``` + +It is also possible to toggle between on and off states during run time by changing the +values of the `on` property on the `KeywriteWeb` instance. + +```javascript +import { KeywriteWeb } from '@keywrite/web'; + +// add to HTMLInputElement without enabling it +const myInstance = new KeywriteWeb(document.querySelector('input'), false); + +// change the on property to enable it + +myInstance.on = true; +``` diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..e32436e --- /dev/null +++ b/docs/index.html @@ -0,0 +1,37 @@ + + + + + Keywrite - ⌨ī¸ Typing Ethiopic scripts made easy + + + + + + +
+ + + + + diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..6066ced --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,12 @@ +# Installing Keywrite + +To use Keywrite on web projects, all you need to do is install the +`@keywrite/web` package: + +```sh +$ yarn add @keywrite/web + +# or + +$ npm install @keywrite/web +``` diff --git a/docs/multiple_layout.md b/docs/multiple_layout.md new file mode 100644 index 0000000..0560d10 --- /dev/null +++ b/docs/multiple_layout.md @@ -0,0 +1,24 @@ +# Using Keywrite with multiple keyboard layouts + +It is possible to add more than one keyboard layout to one instance. This could +be beneficial in cases when you want users to pick from a selection of +input methods. + +multiple layout definitions can be added during initialization. + +```javascript +import { KeywriteWeb } from '@keywrite/web'; + +// keyboard layout definitions +import layout1 from './layout1'; +import layout2 from './layout2'; +import layout3 from './layout3'; + +// add to HTMLInputElement with multiple layout definitions +// the parameter accepts a map of layout name and its definition +new KeywriteWeb(document.querySelector('input'), true, { + default: layout1, + typewriter: layout2, + mnemonic: layout3, +}); +``` diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..f6d8a49 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,22 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + collectCoverage: true, + coverageReporters: ['text', 'html'], + collectCoverageFrom: ['src/**/*.ts'], + coverageThreshold: { + global: { + branches: 90, + functions: 100, + lines: 95, + statements: 95, + }, + }, + transform: { '.(ts|tsx)$': 'ts-jest/dist' }, + transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$'], + globals: { + 'ts-jest': { + tsconfig: 'tsconfig.json', + }, + }, +}; diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000..5812a97 --- /dev/null +++ b/lerna.json @@ -0,0 +1,16 @@ +{ + "packages": ["packages/*"], + "version": "independent", + "npmClient": "yarn", + "useWorkspaces": true, + "registry": "https://registry.npmjs.org/", + "command": { + "version": { "exact": true }, + "publish": { + "conventionalCommits": true, + "message": "chore(release): publish", + "ignoreChanges": ["**/tests/**"], + "allowBranch": "main" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..fcb17a8 --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "keywrite", + "private": true, + "author": "Eyuel Berga Woldemichael ", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/eyuelberga/keywrite.git" + }, + "scripts": { + "prepare": "node ./configure-references.js", + "build": "lerna run build --stream --no-private", + "lint": "lerna run lint --stream --parallel --no-private", + "test": "lerna run test --stream --no-private", + "commit": "git-cz", + "release": "changeset publish", + "version": "changeset version" + }, + "devDependencies": { + "@commitlint/cli": "11.0.0", + "@commitlint/config-conventional": "11.0.0", + "@typescript-eslint/eslint-plugin": "4.14.2", + "@typescript-eslint/parser": "4.14.2", + "commitizen": "4.2.3", + "cz-conventional-changelog": "3.3.0", + "eslint": "^7.19.0", + "eslint-config-prettier": "7.2.0", + "eslint-plugin-prettier": "3.3.1", + "husky": "4.3.8", + "jest": "^26.6.3", + "lerna": "^3.22.1", + "lint-staged": "10.5.3", + "prettier": "2.2.1", + "ts-jest": "26.5.0", + "typescript": "^4.1.3" + }, + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@changesets/changelog-github": "0.2.8", + "@changesets/cli": "2.14.1" + }, + "version": "0.0.0" +} diff --git a/packages/core/README.md b/packages/core/README.md new file mode 100644 index 0000000..cf58d1b --- /dev/null +++ b/packages/core/README.md @@ -0,0 +1,25 @@ +## @keywrite/core + +This package contains the core module for Keywrite. It doesn't do much by itself, +but can be extended to support different use cases + +## Installation + +```sh +$ yarn add @keywrite/core + +# or + +$ npm install @keywrite/core +``` + +## Basic usage + +By extending the exported class from `@keywrite/core` you can add +app-specific logic. The most important method you would use would be the `write` method. This method +takes in a character and resolves it into a special symbol as per the layout +specification and returns the symbol and replacement state(if previous character needs to be replaced with the new symbol). + +## License + +MIT Š [Eyuel Berga](https://github.com/eyuelberga) diff --git a/packages/core/jest.config.js b/packages/core/jest.config.js new file mode 100644 index 0000000..a13adf5 --- /dev/null +++ b/packages/core/jest.config.js @@ -0,0 +1,5 @@ +const baseConfig = require('../../jest.config'); + +module.exports = { + ...baseConfig, +}; diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..5184ce5 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,21 @@ +{ + "name": "@keywrite/core", + "version": "0.1.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "license": "MIT", + "repository": { + "type": "git", + "directory": "packages/core", + "url": "https://github.com/eyuelberga/keywrite.git" + }, + "scripts": { + "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo", + "prepack": "yarn build", + "build": "yarn clean && tsc --build && cp \"./package.json\" ./dist/", + "test": "jest --passWithNoTests", + "lint": "eslint \"./src/**/*.{ts,tsx}\" --max-warnings=10" + }, + "dependencies": {}, + "devDependencies": {} +} diff --git a/packages/core/src/Keywrite.ts b/packages/core/src/Keywrite.ts new file mode 100644 index 0000000..555712e --- /dev/null +++ b/packages/core/src/Keywrite.ts @@ -0,0 +1,93 @@ +export type KeyboardLayout = Record; +export interface SymbolMap { + value: string | null; + next: KeyboardLayout | null; +} + +export class Keywrite { + private level: number; + private scope: KeyboardLayout; + private keyboardLayouts: Record; + private currentLayout: string; + protected keyBlacklist: string[] = [ + 'Shift', + 'CapsLock', + 'Alt', + 'Control', + 'Meta', + 'Backspace', + 'Space', + 'End', + 'Home', + 'PageUp', + 'PageDown', + 'ArrowLeft', + 'ArrowUp', + 'ArrowRight', + 'ArrowDown', + 'Delete', + 'Escape', + 'Insert', + 'Enter', + 'Tab', + ]; + + constructor(layouts: Record) { + this.level = 0; + this.scope = {}; + this.keyboardLayouts = layouts; + this.currentLayout = Object.keys(this.keyboardLayouts)[0]; + } + get current(): string { + return this.currentLayout; + } + + set current(layout: string) { + if (layout in this.keyboardLayouts) { + this.currentLayout = layout; + this.resetScope(); + } else { + throw new Error('Layout does not exists'); + } + } + + get layouts(): string[] { + return Object.keys(this.keyboardLayouts); + } + setLayouts(layouts: Record): void { + this.keyboardLayouts = layouts; + this.currentLayout = Object.keys(this.keyboardLayouts)[0]; + this.resetScope(); + } + public write(char: string): { symbol: string; replace: boolean } { + const symbol = this.getSymbolFromScope(char); + const replace = this.updateScope(char); + return { symbol, replace }; + } + private updateScope(char: string): boolean { + // should replace previous character + const replace = !!(this.level > 0 && this.scope[char]); + const nextScope = this.scope[char]?.next; + if (nextScope) { + this.scope = nextScope; + this.level += 1; + } else { + this.resetScope(); + } + return replace; + } + protected resetScope(): void { + this.scope = this.keyboardLayouts[this.currentLayout]; + this.level = 0; + } + + private getSymbolFromScope(char: string): string { + const valueFromScope = this.scope[char]?.value; + if (valueFromScope) { + return valueFromScope; + } else { + this.resetScope(); + return this.scope[char]?.value || char; + } + } +} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 0000000..c962179 --- /dev/null +++ b/packages/core/src/index.ts @@ -0,0 +1 @@ +export * from './Keywrite'; diff --git a/packages/core/tests/Keywrite.spec.ts b/packages/core/tests/Keywrite.spec.ts new file mode 100644 index 0000000..34429b2 --- /dev/null +++ b/packages/core/tests/Keywrite.spec.ts @@ -0,0 +1,139 @@ +import { Keywrite } from '../src'; +describe('Keywrite.ts', () => { + let instance: any = null; + const layouts = { + layout1: { + a: { value: 'አ', next: null }, + i: { + value: 'áŠĸ', + next: { + e: { + value: 'ኤ', + next: null, + }, + }, + }, + s: { + value: 'áˆĩ', + next: { + h: { + value: 'áˆŊ', + next: { + a: { + value: 'áˆģ', + next: null, + }, + e: { + value: 'ሸ', + next: { + e: { + value: 'áˆŧ', + next: null, + }, + }, + }, + i: { + value: 'áˆē', + next: { + e: { + value: 'áˆŧ', + next: null, + }, + }, + }, + u: { + value: 'ሚ', + next: { + a: { + value: 'áˆŋ', + next: null, + }, + }, + }, + o: { + value: 'ሞ', + next: null, + }, + }, + }, + }, + }, + }, + layout2: { b: { value: 'b', next: null }, a: { value: 'áŠĸ', next: null } }, + }; + beforeEach(() => { + instance = new Keywrite(layouts); + }); + it('should set current keyboard-layout to first on map by default', () => { + expect(instance.current).toBe('layout1'); + }); + it('should set current keyboard-layout using name', () => { + const newLayout = 'layout2'; + instance.current = newLayout; + expect(instance.current).toBe(newLayout); + }); + it("should throw error if input for current keyboard-layout doesn't exist on map", () => { + const unknownLayout = 'layout-unknown'; + expect(() => { + instance.current = unknownLayout; + }).toThrow(); + }); + it('should get all avaliable keyboard-layout names ', () => { + expect(instance.layouts).toContain('layout1'); + expect(instance.layouts).toContain('layout2'); + }); + it('should set new keyboard-layout map ', () => { + const newLayouts = { + layout3: { a: { value: 'a', next: null } }, + layout4: { b: { value: 'b', next: null } }, + }; + instance.setLayouts(newLayouts); + expect(instance.layouts).toContain('layout3'); + expect(instance.layouts).toContain('layout4'); + }); + + it('should update current layout when new keyboard-layout map is set ', () => { + const newLayouts = { + layout3: { a: { value: 'a', next: null } }, + layout4: { b: { value: 'b', next: null } }, + }; + instance.setLayouts(newLayouts); + expect(instance.current).toBe('layout3'); + }); + + it('should be able to use new layout after change', () => { + expect(instance.write('a')).toEqual({ symbol: 'አ', replace: false }); + const newLayout = 'layout2'; + instance.current = newLayout; + expect(instance.write('a')).toEqual({ symbol: 'áŠĸ', replace: false }); + }); + + it('should be able to use new layout after new keyboard-layout map is set ', () => { + expect(instance.write('a')).toEqual({ symbol: 'አ', replace: false }); + const newLayouts = { + layout3: { a: { value: '@', next: null } }, + layout4: { b: { value: '&', next: null } }, + }; + instance.setLayouts(newLayouts); + expect(instance.write('a')).toEqual({ symbol: '@', replace: false }); + }); + + it("should not replace last character if it doesn't exist in current scope", () => { + expect(instance.write('a')).toEqual({ symbol: 'አ', replace: false }); + expect(instance.write('i')).toEqual({ symbol: 'áŠĸ', replace: false }); + }); + it('should replace last character if it does exist in current scope', () => { + // two-level nesting + expect(instance.write('i')).toEqual({ symbol: 'áŠĸ', replace: false }); + expect(instance.write('e')).toEqual({ symbol: 'ኤ', replace: true }); + // four-level nesting + expect(instance.write('s')).toEqual({ symbol: 'áˆĩ', replace: false }); + expect(instance.write('h')).toEqual({ symbol: 'áˆŊ', replace: true }); + expect(instance.write('i')).toEqual({ symbol: 'áˆē', replace: true }); + expect(instance.write('e')).toEqual({ symbol: 'áˆŧ', replace: true }); + }); + it("should return exact character if it doesn't exist in scope", () => { + expect(instance.write('1')).toEqual({ symbol: '1', replace: false }); + expect(instance.write('/')).toEqual({ symbol: '/', replace: false }); + }); +}); diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..2b97c45 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.build.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "composite": true + }, + "include": ["src/**/*"], + "references": [] +} diff --git a/packages/ethiopic-layouts/README.md b/packages/ethiopic-layouts/README.md new file mode 100644 index 0000000..bcad9e9 --- /dev/null +++ b/packages/ethiopic-layouts/README.md @@ -0,0 +1 @@ +## @keywrite/layouts diff --git a/packages/ethiopic-layouts/jest.config.js b/packages/ethiopic-layouts/jest.config.js new file mode 100644 index 0000000..a13adf5 --- /dev/null +++ b/packages/ethiopic-layouts/jest.config.js @@ -0,0 +1,5 @@ +const baseConfig = require('../../jest.config'); + +module.exports = { + ...baseConfig, +}; diff --git a/packages/ethiopic-layouts/package.json b/packages/ethiopic-layouts/package.json new file mode 100644 index 0000000..f0245b5 --- /dev/null +++ b/packages/ethiopic-layouts/package.json @@ -0,0 +1,26 @@ +{ + "name": "@keywrite/ethiopic-layouts", + "version": "0.1.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "license": "MIT", + "repository": { + "type": "git", + "directory": "packages/ethiopic-layouts", + "url": "https://github.com/eyuelberga/keywrite.git" + }, + "scripts": { + "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo", + "prepack": "yarn build", + "build": "yarn clean && tsc --build && cp \"./package.json\" ./dist/", + "test": "jest --passWithNoTests", + "generate": "ts-node src/generate-from-csv.ts", + "lint": "eslint \"./src/**/*.{ts,tsx}\" --max-warnings=10" + }, + "devDependencies": { + "@keywrite/layout-generator": "^0.1.0", + "@keywrite/core": "^0.1.0", + "csv-parser": "^3.0.0", + "ts-node": "^9.1.1" + } +} diff --git a/packages/ethiopic-layouts/src/ET.ts b/packages/ethiopic-layouts/src/ET.ts new file mode 100644 index 0000000..cf5694d --- /dev/null +++ b/packages/ethiopic-layouts/src/ET.ts @@ -0,0 +1,1258 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Ethiopic(Language Neutral)', regions: ['ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + O: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + h: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + O: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + }, + }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + U: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + Y: { value: 'ፙ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + U: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + Y: { value: 'ፙ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: { a: { value: 'âļƒ', next: null }, A: { value: 'âļƒ', next: null } } }, + O: { value: 'áˆļ', next: { a: { value: 'âļƒ', next: null }, A: { value: 'âļƒ', next: null } } }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + Y: { value: 'ፘ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + Y: { value: 'ፘ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + x: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + X: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + x: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + X: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + O: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + Y: { + value: 'ⷅ', + next: { + e: { value: 'ⷀ', next: null }, + E: { value: 'ⷀ', next: null }, + u: { value: '⡁', next: null }, + U: { value: '⡁', next: null }, + i: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + I: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + a: { value: '⡃', next: null }, + A: { value: '⡃', next: null }, + o: { value: 'ⷆ', next: null }, + O: { value: 'ⷆ', next: null }, + }, + }, + }, + }, + Q: { + value: 'ቕ', + next: { + e: { value: 'ቐ', next: null }, + E: { value: 'ቐ', next: null }, + u: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + U: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + i: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + I: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + a: { value: 'ቓ', next: null }, + A: { value: 'ቓ', next: null }, + o: { value: 'ቖ', next: null }, + O: { value: 'ቖ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + U: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + O: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + U: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + O: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + }, + }, + v: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + V: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: { a: { value: 'âļ†', next: null }, A: { value: 'âļ†', next: null } } }, + O: { value: 'á‰ļ', next: { a: { value: 'âļ†', next: null }, A: { value: 'âļ†', next: null } } }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: { a: { value: 'âļ‡', next: null }, A: { value: 'âļ‡', next: null } } }, + O: { value: 'ቾ', next: { a: { value: 'âļ‡', next: null }, A: { value: 'âļ‡', next: null } } }, + c: { + value: 'âļ­', + next: { + e: { value: 'âļ¨', next: null }, + E: { value: 'âļ¨', next: null }, + u: { value: 'âļŠ', next: null }, + U: { value: 'âļŠ', next: null }, + i: { value: 'âļĒ', next: { e: { value: 'âļŦ', next: null }, E: { value: 'âļŦ', next: null } } }, + I: { value: 'âļĒ', next: { e: { value: 'âļŦ', next: null }, E: { value: 'âļŦ', next: null } } }, + a: { value: 'âļĢ', next: null }, + A: { value: 'âļĢ', next: null }, + o: { value: 'âļŽ', next: null }, + O: { value: 'âļŽ', next: null }, + }, + }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: { a: { value: 'âļˆ', next: null }, A: { value: 'âļˆ', next: null } } }, + O: { value: 'ኖ', next: { a: { value: 'âļˆ', next: null }, A: { value: 'âļˆ', next: null } } }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: { a: { value: 'âļ‰', next: null }, A: { value: 'âļ‰', next: null } } }, + O: { value: 'ኞ', next: { a: { value: 'âļ‰', next: null }, A: { value: 'âļ‰', next: null } } }, + }, + }, + a: { + value: 'áŠĨ', + next: { + e: { value: '', next: { e: { value: 'ኧ', next: null }, E: { value: 'ኧ', next: null } } }, + E: { value: 'አ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: { a: { value: 'âļŠ', next: null }, A: { value: 'âļŠ', next: null } } }, + O: { value: 'áŠĻ', next: { a: { value: 'âļŠ', next: null }, A: { value: 'âļŠ', next: null } } }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + O: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + Y: { + value: 'ⷍ', + next: { + e: { value: '⡈', next: null }, + E: { value: '⡈', next: null }, + u: { value: 'ⷉ', next: null }, + U: { value: 'ⷉ', next: null }, + i: { value: 'ⷊ', next: { e: { value: 'ⷌ', next: null }, E: { value: 'ⷌ', next: null } } }, + I: { value: 'ⷊ', next: { e: { value: 'ⷌ', next: null }, E: { value: 'ⷌ', next: null } } }, + a: { value: 'ⷋ', next: null }, + A: { value: 'ⷋ', next: null }, + o: { value: 'ⷎ', next: null }, + O: { value: 'ⷎ', next: null }, + }, + }, + }, + }, + K: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + O: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + Y: { + value: 'ⷕ', + next: { + e: { value: '⡐', next: null }, + E: { value: '⡐', next: null }, + u: { value: 'ⷑ', next: null }, + U: { value: 'ⷑ', next: null }, + i: { value: 'ⷒ', next: { e: { value: 'ⷔ', next: null }, E: { value: 'ⷔ', next: null } } }, + I: { value: 'ⷒ', next: { e: { value: 'ⷔ', next: null }, E: { value: 'ⷔ', next: null } } }, + a: { value: 'ⷓ', next: null }, + A: { value: 'ⷓ', next: null }, + o: { value: 'ⷖ', next: null }, + O: { value: 'ⷖ', next: null }, + }, + }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + O: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + O: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + O: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + Z: { + value: 'âļĩ', + next: { + e: { value: 'âļ°', next: null }, + E: { value: 'âļ°', next: null }, + u: { value: 'âļą', next: null }, + U: { value: 'âļą', next: null }, + i: { value: 'âļ˛', next: { e: { value: 'âļ´', next: null }, E: { value: 'âļ´', next: null } } }, + I: { value: 'âļ˛', next: { e: { value: 'âļ´', next: null }, E: { value: 'âļ´', next: null } } }, + a: { value: 'âļŗ', next: null }, + A: { value: 'âļŗ', next: null }, + o: { value: 'âļļ', next: null }, + O: { value: 'âļļ', next: null }, + }, + }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + O: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + O: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: { a: { value: 'âļŒ', next: null }, A: { value: 'âļŒ', next: null } } }, + O: { value: 'á‹ļ', next: { a: { value: 'âļŒ', next: null }, A: { value: 'âļŒ', next: null } } }, + }, + }, + D: { + value: 'á‹Ŋ', + next: { + e: { value: 'ዸ', next: null }, + E: { value: 'ዸ', next: null }, + u: { value: 'ዹ', next: { a: { value: 'á‹ŋ', next: null }, A: { value: 'á‹ŋ', next: null } } }, + U: { value: 'ዹ', next: { a: { value: 'á‹ŋ', next: null }, A: { value: 'á‹ŋ', next: null } } }, + i: { value: 'á‹ē', next: { e: { value: 'á‹ŧ', next: null }, E: { value: 'á‹ŧ', next: null } } }, + I: { value: 'á‹ē', next: { e: { value: 'á‹ŧ', next: null }, E: { value: 'á‹ŧ', next: null } } }, + a: { value: 'á‹ģ', next: null }, + A: { value: 'á‹ģ', next: null }, + o: { value: 'ዾ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ዾ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + O: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + O: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + O: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + Y: { + value: 'ⷝ', + next: { + e: { value: '⡘', next: null }, + E: { value: '⡘', next: null }, + u: { value: 'ⷙ', next: null }, + U: { value: 'ⷙ', next: null }, + i: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + I: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + a: { value: 'ⷛ', next: null }, + A: { value: 'ⷛ', next: null }, + o: { value: 'ⷞ', next: null }, + O: { value: 'ⷞ', next: null }, + }, + }, + }, + }, + G: { + value: 'ጝ', + next: { + e: { value: 'ጘ', next: null }, + E: { value: 'ጘ', next: null }, + u: { + value: 'ጙ', + next: { + e: { value: 'âļ“', next: null }, + E: { value: 'âļ“', next: null }, + u: { value: 'âļ–', next: null }, + U: { value: 'âļ–', next: null }, + i: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + I: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + a: { value: 'ጟ', next: null }, + A: { value: 'ጟ', next: null }, + }, + }, + U: { + value: 'ጙ', + next: { + e: { value: 'âļ“', next: null }, + E: { value: 'âļ“', next: null }, + u: { value: 'âļ–', next: null }, + U: { value: 'âļ–', next: null }, + i: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + I: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + a: { value: 'ጟ', next: null }, + A: { value: 'ጟ', next: null }, + }, + }, + i: { value: 'ጚ', next: { e: { value: 'ጜ', next: null }, E: { value: 'ጜ', next: null } } }, + I: { value: 'ጚ', next: { e: { value: 'ጜ', next: null }, E: { value: 'ጜ', next: null } } }, + a: { value: 'ጛ', next: null }, + A: { value: 'ጛ', next: null }, + o: { value: 'ጞ', next: null }, + O: { value: 'ጞ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'áŒĻ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ጮ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + C: { + value: 'âļŊ', + next: { + e: { value: 'âļ¸', next: null }, + E: { value: 'âļ¸', next: null }, + u: { value: 'âļš', next: null }, + U: { value: 'âļš', next: null }, + i: { value: 'âļē', next: { e: { value: 'âļŧ', next: null }, E: { value: 'âļŧ', next: null } } }, + I: { value: 'âļē', next: { e: { value: 'âļŧ', next: null }, E: { value: 'âļŧ', next: null } } }, + a: { value: 'âļģ', next: null }, + A: { value: 'âļģ', next: null }, + o: { value: 'âļž', next: null }, + O: { value: 'âļž', next: null }, + }, + }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: { a: { value: 'âļ‘', next: null }, A: { value: 'âļ‘', next: null } } }, + O: { value: 'áŒļ', next: { a: { value: 'âļ‘', next: null }, A: { value: 'âļ‘', next: null } } }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: { a: { value: 'ፇ', next: null }, A: { value: 'ፇ', next: null } } }, + O: { value: 'ፆ', next: { a: { value: 'ፇ', next: null }, A: { value: 'ፇ', next: null } } }, + }, + }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + U: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + Y: { value: 'ፚ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + U: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + Y: { value: 'ፚ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { + value: 'ፑ', + next: { + e: { value: 'ᎌ', next: null }, + E: { value: 'ᎌ', next: null }, + u: { value: 'ᎍ', next: null }, + U: { value: 'ᎍ', next: null }, + i: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + I: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + a: { value: 'ፗ', next: null }, + A: { value: 'ፗ', next: null }, + }, + }, + U: { + value: 'ፑ', + next: { + e: { value: 'ᎌ', next: null }, + E: { value: 'ᎌ', next: null }, + u: { value: 'ᎍ', next: null }, + U: { value: 'ᎍ', next: null }, + i: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + I: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + a: { value: 'ፗ', next: null }, + A: { value: 'ፗ', next: null }, + }, + }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: { a: { value: 'âļ’', next: null }, A: { value: 'âļ’', next: null } } }, + O: { value: 'ፖ', next: { a: { value: 'âļ’', next: null }, A: { value: 'âļ’', next: null } } }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/am-ET.ts b/packages/ethiopic-layouts/src/am-ET.ts new file mode 100644 index 0000000..10e96ac --- /dev/null +++ b/packages/ethiopic-layouts/src/am-ET.ts @@ -0,0 +1,907 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Amharic', regions: ['am-ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + h: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: null }, + O: { value: 'ኆ', next: null }, + }, + }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + v: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + V: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { + value: 'áŠĨ', + next: { + e: { value: '', next: { e: { value: 'ኧ', next: null }, E: { value: 'ኧ', next: null } } }, + E: { value: '', next: { e: { value: 'ኧ', next: null }, E: { value: 'ኧ', next: null } } }, + }, + }, + E: { + value: 'áŠĨ', + next: { + e: { value: '', next: { e: { value: 'ኧ', next: null }, E: { value: 'ኧ', next: null } } }, + E: { value: '', next: { e: { value: 'ኧ', next: null }, E: { value: 'ኧ', next: null } } }, + }, + }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { value: 'ኹ', next: null }, + U: { value: 'ኹ', next: null }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: null }, + O: { value: 'ፆ', next: null }, + }, + }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + U: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/awn-ET_byn-ER_xan-ET.ts b/packages/ethiopic-layouts/src/awn-ET_byn-ER_xan-ET.ts new file mode 100644 index 0000000..bd4f46d --- /dev/null +++ b/packages/ethiopic-layouts/src/awn-ET_byn-ER_xan-ET.ts @@ -0,0 +1,829 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Awngi, Blin, Xamtanga', regions: ['awn-ET', 'byn-ER', 'xan-ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቕ', + next: { + e: { value: 'ቐ', next: null }, + E: { value: 'ቐ', next: null }, + u: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + U: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + i: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + I: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + a: { value: 'ቓ', next: null }, + A: { value: 'ቓ', next: null }, + o: { value: 'ቖ', next: null }, + O: { value: 'ቖ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + U: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ጝ', + next: { + e: { value: 'ጘ', next: null }, + E: { value: 'ጘ', next: null }, + u: { + value: 'ጙ', + next: { + e: { value: 'âļ“', next: null }, + E: { value: 'âļ“', next: null }, + u: { value: 'âļ–', next: null }, + U: { value: 'âļ–', next: null }, + i: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + I: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + a: { value: 'ጟ', next: null }, + A: { value: 'ጟ', next: null }, + }, + }, + U: { + value: 'ጙ', + next: { + e: { value: 'âļ“', next: null }, + E: { value: 'âļ“', next: null }, + u: { value: 'âļ–', next: null }, + U: { value: 'âļ–', next: null }, + i: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + I: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + a: { value: 'ጟ', next: null }, + A: { value: 'ጟ', next: null }, + }, + }, + i: { value: 'ጚ', next: { e: { value: 'ጜ', next: null }, E: { value: 'ጜ', next: null } } }, + I: { value: 'ጚ', next: { e: { value: 'ጜ', next: null }, E: { value: 'ጜ', next: null } } }, + a: { value: 'ጛ', next: null }, + A: { value: 'ጛ', next: null }, + o: { value: 'ጞ', next: null }, + O: { value: 'ጞ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + U: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + v: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + V: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/bcq-ET.ts b/packages/ethiopic-layouts/src/bcq-ET.ts new file mode 100644 index 0000000..21a5e19 --- /dev/null +++ b/packages/ethiopic-layouts/src/bcq-ET.ts @@ -0,0 +1,649 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Bench', regions: ['bcq-ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + l: { + value: 'ል', + next: { + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + u: { value: 'ሑ', next: null }, + U: { value: 'ሑ', next: null }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + u: { value: 'ሹ', next: null }, + U: { value: 'ሹ', next: null }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + x: { + value: 'âļĨ', + next: { + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + X: { + value: 'âļĨ', + next: { + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + }, + }, + X: { + value: 'áˆŊ', + next: { + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + x: { + value: 'âļĨ', + next: { + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + X: { + value: 'âļĨ', + next: { + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + }, + }, + q: { + value: 'ቅ', + next: { + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቅ', + next: { + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + v: { + value: 'á‰Ĩ', + next: { + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + V: { + value: 'á‰Ĩ', + next: { + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + u: { value: 'ቱ', next: null }, + U: { value: 'ቱ', next: null }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + u: { value: 'ቹ', next: null }, + U: { value: 'ቹ', next: null }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + c: { + value: 'âļ­', + next: { + u: { value: 'âļŠ', next: null }, + U: { value: 'âļŠ', next: null }, + i: { value: 'âļĒ', next: { e: { value: 'âļŦ', next: null }, E: { value: 'âļŦ', next: null } } }, + I: { value: 'âļĒ', next: { e: { value: 'âļŦ', next: null }, E: { value: 'âļŦ', next: null } } }, + a: { value: 'âļĢ', next: null }, + A: { value: 'âļĢ', next: null }, + o: { value: 'âļŽ', next: null }, + O: { value: 'âļŽ', next: null }, + }, + }, + }, + }, + n: { + value: 'ን', + next: { + u: { value: 'ኑ', next: null }, + U: { value: 'ኑ', next: null }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ን', + next: { + u: { value: 'ኑ', next: null }, + U: { value: 'ኑ', next: null }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + u: { value: 'ኩ', next: null }, + U: { value: 'ኩ', next: null }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'ክ', + next: { + u: { value: 'ኩ', next: null }, + U: { value: 'ኩ', next: null }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + u: { value: 'ዙ', next: null }, + U: { value: 'ዙ', next: null }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + u: { value: 'ዡ', next: null }, + U: { value: 'ዡ', next: null }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + Z: { + value: 'âļĩ', + next: { + u: { value: 'âļą', next: null }, + U: { value: 'âļą', next: null }, + i: { value: 'âļ˛', next: { e: { value: 'âļ´', next: null }, E: { value: 'âļ´', next: null } } }, + I: { value: 'âļ˛', next: { e: { value: 'âļ´', next: null }, E: { value: 'âļ´', next: null } } }, + a: { value: 'âļŗ', next: null }, + A: { value: 'âļŗ', next: null }, + o: { value: 'âļļ', next: null }, + O: { value: 'âļļ', next: null }, + }, + }, + }, + }, + y: { + value: 'ይ', + next: { + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + u: { value: 'ጡ', next: null }, + U: { value: 'ጡ', next: null }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + u: { value: 'ጩ', next: null }, + U: { value: 'ጩ', next: null }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + C: { + value: 'âļŊ', + next: { + u: { value: 'âļš', next: null }, + U: { value: 'âļš', next: null }, + i: { value: 'âļē', next: { e: { value: 'âļŧ', next: null }, E: { value: 'âļŧ', next: null } } }, + I: { value: 'âļē', next: { e: { value: 'âļŧ', next: null }, E: { value: 'âļŧ', next: null } } }, + a: { value: 'âļģ', next: null }, + A: { value: 'âļģ', next: null }, + o: { value: 'âļž', next: null }, + O: { value: 'âļž', next: null }, + }, + }, + }, + }, + P: { + value: 'áŒĩ', + next: { + u: { value: 'ጱ', next: null }, + U: { value: 'ጱ', next: null }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + S: { + value: 'áŒŊ', + next: { + u: { value: 'ጹ', next: null }, + U: { value: 'ጹ', next: null }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + u: { value: 'ፑ', next: null }, + U: { value: 'ፑ', next: null }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/csv/ET.csv b/packages/ethiopic-layouts/src/csv/ET.csv new file mode 100644 index 0000000..6023715 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/ET.csv @@ -0,0 +1,54 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE],+Y +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ,ሇ,ኈ,ኍ,ኊ,ኋ,ኌ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ,âļ€, , , ,ሏ, ,  +H,ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , ,ሗ, ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ,âļ,ᎀ,ᎃ,ᎁ,ሟ,ᎂ,ፙ +ss,ሠ,ሥ,áˆĸ,áˆŖ,ሤ,áˆĨ,áˆĻ, , , , ,ሧ, ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ,âļ‚, , , ,ሯ, ,ፘ +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ,âļƒ, , , ,ሡ, ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ,âļ„, , , ,áˆŋ, ,  +[xX][xX],âļ ,âļĄ,âļĸ,âļŖ,âļ¤,âļĨ,âļĻ, , , , , , ,  +q,ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ,ቇ,ቈ,ቍ,ቊ,ቋ,ቌ,  +Q,ቐ,ቑ,ቒ,ቓ,ቔ,ቕ,ቖ, ,ቘ,ቝ,ቚ,ቛ,ቜ,  +qY,ⷀ,⡁,ⷂ,⡃,ⷄ,ⷅ,ⷆ, , , , , , ,  +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ,âļ…,ᎄ,ᎇ,ᎅ,ቧ,ᎆ,  +[vV],ቨ,ቩ,á‰Ē,á‰Ģ,á‰Ŧ,ቭ,ቮ, , , , ,ቯ, ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ,âļ†, , , ,ቷ, ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ,âļ‡, , , ,á‰ŋ, ,  +cc,âļ¨,âļŠ,âļĒ,âļĢ,âļŦ,âļ­,âļŽ, , , , , , ,  +hh,ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ,ኇ,ኈ,ኍ,ኊ,ኋ,ኌ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ,âļˆ, , , ,ኗ, ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ,âļ‰, , , ,ኟ, ,  +a,አ,ኡ,áŠĸ,áŠŖ,ኤ,áŠĨ,áŠĻ,âļŠ, , , , , ,  +[kK],ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ,ኯ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ,  +kY,⡈,ⷉ,ⷊ,ⷋ,ⷌ,ⷍ,ⷎ, , , , , , ,  +KY,⡐,ⷑ,ⷒ,ⷓ,ⷔ,ⷕ,ⷖ, , , , , , ,  +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ,ዏ, , , , , ,  +A,ዕ,ዑ,ዒ,ዓ,ዔ,ዐ,ዖ, , , , , , ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ,âļ‹, , , ,ዟ, ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , ,ዧ, ,  +ZZ,âļ°,âļą,âļ˛,âļŗ,âļ´,âļĩ,âļļ, , , , , , ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ,ዯ, , , , , ,  +d,ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ,âļŒ, , , ,ዷ, ,  +D,ዸ,ዹ,á‹ē,á‹ģ,á‹ŧ,á‹Ŋ,ዾ,âļ, , , ,á‹ŋ, ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ,âļŽ, , , ,ጇ, ,  +g,ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ,ጏ,ጐ,ጕ,ጒ,ጓ,ጔ,  +G,ጘ,ጙ,ጚ,ጛ,ጜ,ጝ,ጞ, ,âļ“,âļ–,âļ”,ጟ,âļ•,  +gY,⡘,ⷙ,ⷚ,ⷛ,ⷜ,ⷝ,ⷞ, , , , , , ,  +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ,âļ, , , ,ጧ, ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ,âļ, , , ,ጯ, ,  +CC,âļ¸,âļš,âļē,âļģ,âļŧ,âļŊ,âļž, , , , , , ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ,âļ‘, , , ,ጷ, ,  +S,ጸ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , ,áŒŋ, ,  +SS,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ,ፇ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, ,ᎈ,ᎉ,ᎋ,ፏ,ᎊ,ፚ +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ,âļ’,ᎌ,ᎍ,ᎏ,ፗ,ᎎ,  +ae,ኧ, ,,,,,,,,,,,, +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, +E,,,,,,ዕ,,,,,,, +I,ዔ,,,,,ዒ,,,,,,, +O,,,,,,ዖ,,,,,,, +U,,,,,,ዑ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/am-ET.csv b/packages/ethiopic-layouts/src/csv/am-ET.csv new file mode 100644 index 0000000..0031b71 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/am-ET.csv @@ -0,0 +1,44 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , ,ሏ,  +H,ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , ,ሗ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , ,ሟ,  +ss,ሠ,ሥ,áˆĸ,áˆŖ,ሤ,áˆĨ,áˆĻ, , , , ,ሧ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , ,ሯ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , ,ሡ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , ,áˆŋ,  +[qQ],ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, ,ቈ,ቍ,ቊ,ቋ,ቌ +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , ,ቧ,  +[vV],ቨ,ቩ,á‰Ē,á‰Ģ,á‰Ŧ,ቭ,ቮ, , , , ,ቯ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , ,ቷ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , ,á‰ŋ,  +hh,ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , ,ኗ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , ,ኟ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +k,ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ +K,ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, , , , , ,  +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +A,ዕ,ዑ,ዒ,ዓ,ዔ,ዐ,ዖ, , , , , ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , ,ዟ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , ,ዧ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , ,ዷ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , ,ጇ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, ,ጐ,ጕ,ጒ,ጓ,ጔ +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , ,ጧ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , ,ጯ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , ,ጷ,  +S,ጸ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , ,áŒŋ,  +SS,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , ,ፏ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , ,ፗ,  +a[eE][eE],ኧ, ,,,,,,,,,,, +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, +E,,,,,,ዕ,,,,,,, +I,ዔ,,,,,ዒ,,,,,,, +O,,,,,,ዖ,,,,,,, +U,,,,,,ዑ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/awn-ET_byn-ER_xan-ET.csv b/packages/ethiopic-layouts/src/csv/awn-ET_byn-ER_xan-ET.csv new file mode 100644 index 0000000..fe4d832 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/awn-ET_byn-ER_xan-ET.csv @@ -0,0 +1,42 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, , , , , ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , ,ሏ,  +H,ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , ,ሗ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , ,ሟ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , ,ሡ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , ,ሯ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , ,áˆŋ,  +q,ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, ,ቈ,ቍ,ቊ,ቋ,ቌ +Q,ቐ,ቑ,ቒ,ቓ,ቔ,ቕ,ቖ, ,ቘ,ቝ,ቚ,ቛ,ቜ +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , ,ቧ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , ,ቷ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , ,ኗ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +k,ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ +K,ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, ,ዀ,ዅ,ዂ,ዃ,ዄ +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +A,ዕ,ዑ,ዒ,ዓ,ዔ,ዐ,ዖ, , , , , ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , ,ዷ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , ,ጇ,  +g,ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, ,ጐ,ጕ,ጒ,ጓ,ጔ +G,ጘ,ጙ,ጚ,ጛ,ጜ,ጝ,ጞ, ,âļ“,âļ–,âļ”,ጟ,âļ• +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , ,ጧ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , ,ጯ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , ,ፏ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , ,á‰ŋ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , ,ኟ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , ,ዟ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , ,ዧ,  +S,ጸ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , ,áŒŋ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , ,ጷ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , ,ፗ,  +[vV],ቨ,ቩ,á‰Ē,á‰Ģ,á‰Ŧ,ቭ,ቮ, , , , ,ቯ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, +E,,,,,,ዕ,,,,,,, +I,ዔ,,,,,ዒ,,,,,,, +O,,,,,,ዖ,,,,,,, +U,,,,,,ዑ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/bcq-ET.csv b/packages/ethiopic-layouts/src/csv/bcq-ET.csv new file mode 100644 index 0000000..40a1ee0 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/bcq-ET.csv @@ -0,0 +1,36 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, , , , , ,  +[lL], ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , , ,  +H, ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , , ,  +[mM], ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , , ,  +ss, ,ሥ,áˆĸ,áˆŖ,ሤ,áˆĨ,áˆĻ, , , , , ,  +[rR], ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , , ,  +s, ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , , ,  +[xX], ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , , ,  +[xX][xX], ,âļĄ,âļĸ,âļŖ,âļ¤,âļĨ,âļĻ, , , , , ,  +[qQ], ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, , , , , ,  +[bBvV], ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , , ,  +t, ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , , ,  +c, ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , , ,  +cc, ,âļŠ,âļĒ,âļĢ,âļŦ,âļ­,âļŽ, , , , , ,  +[nN], ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , , ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +[kK], ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, , , , , ,  +[wW], ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +z, ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , , ,  +Z, ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , , ,  +ZZ, ,âļą,âļ˛,âļŗ,âļ´,âļĩ,âļļ, , , , , ,  +[yY], ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD], ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , , ,  +[jJ], ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , , ,  +[gG], ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, , , , , ,  +T, ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , , ,  +C, ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , , ,  +CC, ,âļš,âļē,âļģ,âļŧ,âļŊ,âļž, , , , , ,  +P, ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , , ,  +S, ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , , ,  +p, ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , , ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/gez-ET_gez-ER.csv b/packages/ethiopic-layouts/src/csv/gez-ET_gez-ER.csv new file mode 100644 index 0000000..2af7c14 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/gez-ET_gez-ER.csv @@ -0,0 +1,37 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , ,ሏ,  +H,ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , ,ሗ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , ,ሟ,  +ss,ሠ,ሥ,áˆĸ,áˆŖ,ሤ,áˆĨ,áˆĻ, , , , ,ሧ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , ,ሯ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , ,ሡ,  +[qQ],ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, ,ቈ,ቍ,ቊ,ቋ,ቌ +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , ,ቧ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , ,ቷ,  +[xX],ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +hh,ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +[nN],ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , ,ኗ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +[kK],ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +A,ዕ,ዑ,ዒ,ዓ,ዔ,ዐ,ዖ, , , , , ,  +[zZ],ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , ,ዟ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +d,ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , ,ዷ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, ,ጐ,ጕ,ጒ,ጓ,ጔ +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , ,ጧ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , ,ጷ,  +S,ጸ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , ,áŒŋ,  +D,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ, , , , , ,  +SS,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , ,ፏ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , ,ፗ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, +E,,,,,,ዕ,,,,,,, +I,ዔ,,,,,ዒ,,,,,,, +O,,,,,,ዖ,,,,,,, +U,,,,,,ዑ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/har-ET.csv b/packages/ethiopic-layouts/src/csv/har-ET.csv new file mode 100644 index 0000000..7de98ce --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/har-ET.csv @@ -0,0 +1,29 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +[hH],ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , , ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , , ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , , ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , , ,  +[sS],ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , , ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , , ,  +[qQ],ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, , , , , ,  +[bBvVpP],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , , ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , , ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , , ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , , ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , , ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +k,ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, , , , , ,  +K,ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, , , , , ,  +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +[zZ],ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , , ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , , ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , , ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, , , , , ,  +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , , ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , , ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/mym-ET_muz-ET_suq-ET_mdx-ET.csv b/packages/ethiopic-layouts/src/csv/mym-ET_muz-ET_suq-ET_mdx-ET.csv new file mode 100644 index 0000000..47542fa --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/mym-ET_muz-ET_suq-ET_mdx-ET.csv @@ -0,0 +1,34 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +[hH],ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ,ሇ, , , , ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ,âļ€, , , , ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ,âļ, , , , ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ,âļ‚, , , , ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ,âļƒ, , , , ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ,âļ„, , , , ,  +[qQ],ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ,ቇ, , , , ,  +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ,âļ…, , , , ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ,âļ†, , , , ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ,âļ‡, , , , ,  +[fF],ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ,ኇ, , , , ,  +hh,ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ,ኇ, , , , ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ,âļˆ, , , , ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ,âļ‰, , , , ,  +a,አ,ኡ,áŠĸ,áŠŖ,ኤ,áŠĨ,áŠĻ,âļŠ, , , , ,  +[kK],ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ,ኯ, , , , ,  +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ,ዏ, , , , ,  +[zZ],ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ,âļ‹, , , , ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ,ዯ, , , , ,  +d,ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ,âļŒ, , , , ,  +D,ዸ,ዹ,á‹ē,á‹ģ,á‹ŧ,á‹Ŋ,ዾ,âļ, , , , ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ,âļŽ, , , , ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ,ጏ, , , , ,  +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ,âļ, , , , ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ,âļ, , , , ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ,âļ‘, , , , ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ,âļ’, , , , ,  +S,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ,ፇ, , , , ,  +ee, , , , , ,ዕ, , , , , , ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/punctuation.csv b/packages/ethiopic-layouts/src/csv/punctuation.csv new file mode 100644 index 0000000..0ce79b8 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/punctuation.csv @@ -0,0 +1,6 @@ +KEY,_,:,",",",,",;,-,::,<,<<,>,>> +:,፡,áĸ,áĨ,,,áĻ,:,,,, +",",áŖ,,áĨ,",",,,,,,, +;,፤,,,,;,,,,,, +<,‹,,,,,,,ÂĢ,<,, +>,â€ē,,,,,,,,,Âģ,> diff --git a/packages/ethiopic-layouts/src/csv/sgw-ET.csv b/packages/ethiopic-layouts/src/csv/sgw-ET.csv new file mode 100644 index 0000000..c109cd8 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/sgw-ET.csv @@ -0,0 +1,36 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +[hH],ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, ,ዀ,ዅ,ዂ,ዃ,ዄ +KY,⡐,ⷑ,ⷒ,ⷓ,ⷔ,ⷕ,ⷖ, , , , , ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , ,ሏ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, ,ᎀ,ᎃ,ᎁ,ሟ,ᎂ +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , ,ሯ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , ,ሡ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , ,áˆŋ,  +[qQ],ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, ,ቈ,ቍ,ቊ,ቋ,ቌ +[qQ]Y,ⷀ,⡁,ⷂ,⡃,ⷄ,ⷅ,ⷆ, , , , , ,  +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, ,ᎄ,ᎇ,ᎅ,ቧ,ᎆ +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , ,ቷ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , ,á‰ŋ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , ,ኗ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , ,ኟ,  +a,ኧ,ኡ,áŠĸ,አ,ኤ,áŠĨ,áŠĻ, , , , , ,  +[kK],ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ +kY,⡈,ⷉ,ⷊ,ⷋ,ⷌ,ⷍ,ⷎ, , , , , ,  +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , ,ዟ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , ,ዧ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , ,ዷ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , ,ጇ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, ,ጐ,ጕ,ጒ,ጓ,ጔ +[gG]Y,⡘,ⷙ,ⷚ,ⷛ,ⷜ,ⷝ,ⷞ, , , , , ,  +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , ,ጧ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , ,ጯ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , ,ጷ,  +S,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, ,ᎈ,ᎉ,ᎋ,ፏ,ᎊ +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, ,ᎌ,ᎍ,ᎏ,ፗ,ᎎ +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/ti-ER.csv b/packages/ethiopic-layouts/src/csv/ti-ER.csv new file mode 100644 index 0000000..ffd3346 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/ti-ER.csv @@ -0,0 +1,41 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, , , , , ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , ,ሏ,  +H,ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , ,ሗ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , ,ሟ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , ,ሯ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , ,ሡ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , ,áˆŋ,  +q,ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, ,ቈ,ቍ,ቊ,ቋ,ቌ +Q,ቐ,ቑ,ቒ,ቓ,ቔ,ቕ,ቖ, ,ቘ,ቝ,ቚ,ቛ,ቜ +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , ,ቧ,  +[vV],ቨ,ቩ,á‰Ē,á‰Ģ,á‰Ŧ,ቭ,ቮ, , , , ,ቯ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , ,ቷ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , ,á‰ŋ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , ,ኗ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , ,ኟ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +k,ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ +K,ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, ,ዀ,ዅ,ዂ,ዃ,ዄ +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +A,ዕ,ዑ,ዒ,ዓ,ዔ,ዐ,ዖ, , , , , ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , ,ዟ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , ,ዧ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , ,ዷ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , ,ጇ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, ,ጐ,ጕ,ጒ,ጓ,ጔ +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , ,ጧ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , ,ጯ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , ,ጷ,  +S,ጸ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , ,áŒŋ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , ,ፏ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , ,ፗ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, +E,,,,,,ዕ,,,,,,, +I,ዔ,,,,,ዒ,,,,,,, +O,,,,,,ዖ,,,,,,, +U,,,,,,ዑ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/ti-ET.csv b/packages/ethiopic-layouts/src/csv/ti-ET.csv new file mode 100644 index 0000000..10b5ce9 --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/ti-ET.csv @@ -0,0 +1,44 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +h,ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , ,ሏ,  +H,ሐ,ሑ,ሒ,ሓ,ሔ,ሕ,ሖ, , , , ,ሗ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , ,ሟ,  +ss,ሠ,ሥ,áˆĸ,áˆŖ,ሤ,áˆĨ,áˆĻ, , , , ,ሧ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , ,ሯ,  +s,ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , ,ሡ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , ,áˆŋ,  +q,ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, ,ቈ,ቍ,ቊ,ቋ,ቌ +Q,ቐ,ቑ,ቒ,ቓ,ቔ,ቕ,ቖ, ,ቘ,ቝ,ቚ,ቛ,ቜ +[bB],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , ,ቧ,  +[vV],ቨ,ቩ,á‰Ē,á‰Ģ,á‰Ŧ,ቭ,ቮ, , , , ,ቯ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , ,ቷ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , ,á‰ŋ,  +hh,ኀ,ኁ,ኂ,ኃ,ኄ,ኅ,ኆ, ,ኈ,ኍ,ኊ,ኋ,ኌ +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , ,ኗ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , ,ኟ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +k,ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, ,ኰ,áŠĩ,ኲ,áŠŗ,ኴ +K,ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, ,ዀ,ዅ,ዂ,ዃ,ዄ +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +A,ዕ,ዑ,ዒ,ዓ,ዔ,ዐ,ዖ, , , , , ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , ,ዟ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , ,ዧ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , ,ዷ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , ,ጇ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, ,ጐ,ጕ,ጒ,ጓ,ጔ +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , ,ጧ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , ,ጯ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , ,ጷ,  +S,ጸ,ጹ,áŒē,áŒģ,áŒŧ,áŒŊ,ጾ, , , , ,áŒŋ,  +SS,ፀ,ፁ,ፂ,ፃ,ፄ,ፅ,ፆ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , ,ፏ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , ,ፗ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, +E,,,,,,ዕ,,,,,,, +I,ዔ,,,,,ዒ,,,,,,, +O,,,,,,ዖ,,,,,,, +U,,,,,,ዑ,,,,,,, diff --git a/packages/ethiopic-layouts/src/csv/xst-ET.csv b/packages/ethiopic-layouts/src/csv/xst-ET.csv new file mode 100644 index 0000000..f5234bd --- /dev/null +++ b/packages/ethiopic-layouts/src/csv/xst-ET.csv @@ -0,0 +1,32 @@ +KEY,+[eE],+[uU],+[iI],+[aA],+[iI][eE],_,+[oO],+[oO][aA],+[uU][eE],+[uU][uU],+[uU][iI],+[uU][aA],+[uU][iI][eE] +[hH],ሀ,ሁ,ሂ,ሃ,ሄ,ህ,ሆ, , , , , ,  +[lL],ለ,ሉ,ሊ,ላ,ሌ,ል,ሎ, , , , , ,  +[mM],መ,ሙ,ሚ,ማ,ሜ,ም,ሞ, , , , , ,  +[rR],ረ,ሊ,áˆĒ,áˆĢ,áˆŦ,ር,ሎ, , , , , ,  +[sS],ሰ,ሹ,ሲ,áˆŗ,ሴ,áˆĩ,áˆļ, , , , , ,  +[xX],ሸ,ሚ,áˆē,áˆģ,áˆŧ,áˆŊ,ሞ, , , , , ,  +[qQ],ቀ,ቁ,ቂ,ቃ,ቄ,ቅ,ቆ, , , , , ,  +[bBvV],በ,ቡ,á‰ĸ,á‰Ŗ,ቤ,á‰Ĩ,á‰Ļ, , , , , ,  +t,ተ,ቱ,ቲ,á‰ŗ,ቴ,á‰ĩ,á‰ļ, , , , , ,  +c,ቸ,ቹ,á‰ē,á‰ģ,á‰ŧ,á‰Ŋ,ቾ, , , , , ,  +n,ነ,ኑ,ኒ,ና,ኔ,ን,ኖ, , , , , ,  +N,ኘ,ኙ,ኚ,ኛ,ኜ,ኝ,ኞ, , , , , ,  +a,áŠĨ,ኡ,áŠĸ,áŠŖ,ኤ,አ,áŠĻ, , , , , ,  +k,ከ,ኩ,áŠĒ,áŠĢ,áŠŦ,ክ,ኮ, , , , , ,  +K,ኸ,ኹ,áŠē,áŠģ,áŠŧ,áŠŊ,ኾ, , , , , ,  +[wW],ወ,ዉ,ዊ,ዋ,ዌ,ው,ዎ, , , , , ,  +z,ዘ,ዙ,ዚ,ዛ,ዜ,ዝ,ዞ, , , , , ,  +Z,ዠ,ዡ,á‹ĸ,á‹Ŗ,ዤ,á‹Ĩ,á‹Ļ, , , , , ,  +[yY],የ,ዩ,á‹Ē,á‹Ģ,á‹Ŧ,ይ,ዮ, , , , , ,  +[dD],ደ,ዱ,ዲ,á‹ŗ,ዴ,á‹ĩ,á‹ļ, , , , , ,  +[jJ],ጀ,ጁ,ጂ,ጃ,ጄ,ጅ,ጆ, , , , , ,  +[gG],ገ,ጉ,ጊ,ጋ,ጌ,ግ,ጎ, , , , , ,  +T,ጠ,ጡ,áŒĸ,áŒŖ,ጤ,áŒĨ,áŒĻ, , , , , ,  +C,ጨ,ጩ,áŒĒ,áŒĢ,áŒŦ,ጭ,ጮ, , , , , ,  +P,ጰ,ጱ,ጲ,áŒŗ,ጴ,áŒĩ,áŒļ, , , , , ,  +[fF],ፈ,ፉ,ፊ,ፋ,ፌ,ፍ,ፎ, , , , , ,  +p,ፐ,ፑ,ፒ,ፓ,ፔ,ፕ,ፖ, , , , , ,  +e,,,,,,áŠĨ,,,,,,, +i,ኤ,,,,,áŠĸ,,,,,,, +o,,,,,,áŠĻ,,,,,,, +u,,,,,,ኡ,,,,,,, diff --git a/packages/ethiopic-layouts/src/generate-from-csv.ts b/packages/ethiopic-layouts/src/generate-from-csv.ts new file mode 100644 index 0000000..d6c1ad3 --- /dev/null +++ b/packages/ethiopic-layouts/src/generate-from-csv.ts @@ -0,0 +1,52 @@ +import { generateMapForRow } from '@keywrite/layout-generator'; +import csvParser from 'csv-parser'; +import fs from 'fs'; +import layouts from './layouts'; +const punctuation = {}; +fs.createReadStream(`${__dirname}/csv/punctuation.csv`) + .pipe(csvParser()) + .on('data', (row) => { + generateMapForRow(punctuation, row); + }) + .on('end', () => { + console.log('layout successfully generated for punctuation'); + }); +for (const [code, { name, path }] of Object.entries(layouts)) { + const layout = {}; + fs.createReadStream(`${__dirname}/csv/${path}.csv`) + .pipe(csvParser()) + .on('data', (row) => { + generateMapForRow(layout, row); + }) + .on('end', () => { + console.log(`layout successfully generated for ${name}`); + const meta = { + name, + regions: code.split('_'), + }; + + fs.writeFileSync( + `${__dirname}/${code}.ts`, + `import { KeyboardLayout } from '@keywrite/core'; + type LayoutMeta = {name: string; regions: string[];}; + type LayoutSpec = { meta:LayoutMeta; layout: KeyboardLayout; }; + const layout : LayoutSpec = ${JSON.stringify({ meta, layout: { ...layout, ...punctuation } })}; + export default layout; + `, + ); + }); +} +// write index indexFile +// const layoutMap:Record = {} +let index = ` +import { KeyboardLayout } from '@keywrite/core'; +const layouts:Record = {};`; +for (const { path, name } of Object.values(layouts)) { + const layout = name.replace(/[^a-zA-Z]/g, ''); + index += ` + import ${layout} from './${path}'; + layouts[${layout}.meta.name] = ${layout}.layout; + `; +} +index += `export default layouts;`; +fs.writeFileSync(`${__dirname}/index.ts`, index); diff --git a/packages/ethiopic-layouts/src/gez-ET_gez-ER.ts b/packages/ethiopic-layouts/src/gez-ET_gez-ER.ts new file mode 100644 index 0000000..062b2c8 --- /dev/null +++ b/packages/ethiopic-layouts/src/gez-ET_gez-ER.ts @@ -0,0 +1,877 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: "Ge'ez", regions: ['gez-ET', 'gez-ER'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + h: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: null }, + O: { value: 'ኆ', next: null }, + }, + }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + x: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: null }, + O: { value: 'ኆ', next: null }, + }, + }, + X: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: null }, + O: { value: 'ኆ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: null }, + O: { value: 'ፆ', next: null }, + }, + }, + }, + }, + D: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: null }, + O: { value: 'ፆ', next: null }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + U: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/har-ET.ts b/packages/ethiopic-layouts/src/har-ET.ts new file mode 100644 index 0000000..53caf8c --- /dev/null +++ b/packages/ethiopic-layouts/src/har-ET.ts @@ -0,0 +1,666 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Harari', regions: ['har-ET'] }, + layout: { + h: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: null }, + U: { value: 'ሑ', next: null }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: null }, + U: { value: 'ሑ', next: null }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: null }, + U: { value: 'ሹ', next: null }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + S: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: null }, + U: { value: 'ሹ', next: null }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + v: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + V: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + p: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + P: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: null }, + U: { value: 'ቱ', next: null }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: null }, + U: { value: 'ቹ', next: null }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: null }, + U: { value: 'ኑ', next: null }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: null }, + U: { value: 'ኙ', next: null }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { value: 'ኩ', next: null }, + U: { value: 'ኩ', next: null }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { value: 'ኹ', next: null }, + U: { value: 'ኹ', next: null }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: null }, + U: { value: 'ዙ', next: null }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: null }, + U: { value: 'ዙ', next: null }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: null }, + U: { value: 'ጡ', next: null }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: null }, + U: { value: 'ጩ', next: null }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: null }, + U: { value: 'ፉ', next: null }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: null }, + U: { value: 'ፉ', next: null }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/index.ts b/packages/ethiopic-layouts/src/index.ts new file mode 100644 index 0000000..25e315f --- /dev/null +++ b/packages/ethiopic-layouts/src/index.ts @@ -0,0 +1,35 @@ +import { KeyboardLayout } from '@keywrite/core'; +const layouts: Record = {}; +import Amharic from './am-ET'; +layouts[Amharic.meta.name] = Amharic.layout; + +import AwngiBlinXamtanga from './awn-ET_byn-ER_xan-ET'; +layouts[AwngiBlinXamtanga.meta.name] = AwngiBlinXamtanga.layout; + +import Bench from './bcq-ET'; +layouts[Bench.meta.name] = Bench.layout; + +import DiziMeenMursiSuri from './mym-ET_muz-ET_suq-ET_mdx-ET'; +layouts[DiziMeenMursiSuri.meta.name] = DiziMeenMursiSuri.layout; + +import Geez from './gez-ET_gez-ER'; +layouts[Geez.meta.name] = Geez.layout; + +import Harari from './har-ET'; +layouts[Harari.meta.name] = Harari.layout; + +import Sebatbeit from './sgw-ET'; +layouts[Sebatbeit.meta.name] = Sebatbeit.layout; + +import Silte from './xst-ET'; +layouts[Silte.meta.name] = Silte.layout; + +import TigrinyaEritrean from './ti-ER'; +layouts[TigrinyaEritrean.meta.name] = TigrinyaEritrean.layout; + +import TigrinyaEthiopia from './ti-ET'; +layouts[TigrinyaEthiopia.meta.name] = TigrinyaEthiopia.layout; + +import EthiopicLanguageNeutral from './ET'; +layouts[EthiopicLanguageNeutral.meta.name] = EthiopicLanguageNeutral.layout; +export default layouts; diff --git a/packages/ethiopic-layouts/src/layouts.ts b/packages/ethiopic-layouts/src/layouts.ts new file mode 100644 index 0000000..510ab0b --- /dev/null +++ b/packages/ethiopic-layouts/src/layouts.ts @@ -0,0 +1,45 @@ +type LayoutMeta = { path: string; name: string }; +const layouts: Record = { + 'am-ET': { path: 'am-ET', name: 'Amharic' }, + 'awn-ET_byn-ER_xan-ET': { + path: 'awn-ET_byn-ER_xan-ET', + name: 'Awngi, Blin, Xamtanga', + }, + 'bcq-ET': { + path: 'bcq-ET', + name: 'Bench', + }, + 'mym-ET_muz-ET_suq-ET_mdx-ET': { + path: 'mym-ET_muz-ET_suq-ET_mdx-ET', + name: "Dizi, Me'en, Mursi, Suri", + }, + 'gez-ET_gez-ER': { + path: 'gez-ET_gez-ER', + name: "Ge'ez", + }, + 'har-ET': { + path: 'har-ET', + name: 'Harari', + }, + 'sgw-ET': { + path: 'sgw-ET', + name: 'Sebatbeit', + }, + 'xst-ET': { + path: 'xst-ET', + name: "Silt'e", + }, + 'ti-ER': { + path: 'ti-ER', + name: 'Tigrinya(Eritrean)', + }, + 'ti-ET': { + path: 'ti-ET', + name: 'Tigrinya(Ethiopia)', + }, + ET: { + path: 'ET', + name: 'Ethiopic(Language Neutral)', + }, +}; +export default layouts; diff --git a/packages/ethiopic-layouts/src/mym-ET_muz-ET_suq-ET_mdx-ET.ts b/packages/ethiopic-layouts/src/mym-ET_muz-ET_suq-ET_mdx-ET.ts new file mode 100644 index 0000000..0e90654 --- /dev/null +++ b/packages/ethiopic-layouts/src/mym-ET_muz-ET_suq-ET_mdx-ET.ts @@ -0,0 +1,651 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: "Dizi, Me'en, Mursi, Suri", regions: ['mym-ET', 'muz-ET', 'suq-ET', 'mdx-ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + O: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + h: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { value: 'ኁ', next: null }, + U: { value: 'ኁ', next: null }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + O: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + }, + }, + }, + }, + H: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + O: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: null }, + U: { value: 'ሹ', next: null }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: { a: { value: 'âļƒ', next: null }, A: { value: 'âļƒ', next: null } } }, + O: { value: 'áˆļ', next: { a: { value: 'âļƒ', next: null }, A: { value: 'âļƒ', next: null } } }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + O: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + }, + }, + Q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + O: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + O: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + O: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: null }, + U: { value: 'ቱ', next: null }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: { a: { value: 'âļ†', next: null }, A: { value: 'âļ†', next: null } } }, + O: { value: 'á‰ļ', next: { a: { value: 'âļ†', next: null }, A: { value: 'âļ†', next: null } } }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: null }, + U: { value: 'ቹ', next: null }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: { a: { value: 'âļ‡', next: null }, A: { value: 'âļ‡', next: null } } }, + O: { value: 'ቾ', next: { a: { value: 'âļ‡', next: null }, A: { value: 'âļ‡', next: null } } }, + }, + }, + f: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { value: 'ኁ', next: null }, + U: { value: 'ኁ', next: null }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + O: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + }, + }, + F: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { value: 'ኁ', next: null }, + U: { value: 'ኁ', next: null }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + O: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: null }, + U: { value: 'ኑ', next: null }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: { a: { value: 'âļˆ', next: null }, A: { value: 'âļˆ', next: null } } }, + O: { value: 'ኖ', next: { a: { value: 'âļˆ', next: null }, A: { value: 'âļˆ', next: null } } }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: null }, + U: { value: 'ኙ', next: null }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: { a: { value: 'âļ‰', next: null }, A: { value: 'âļ‰', next: null } } }, + O: { value: 'ኞ', next: { a: { value: 'âļ‰', next: null }, A: { value: 'âļ‰', next: null } } }, + }, + }, + a: { + value: 'áŠĨ', + next: { + e: { value: 'አ', next: null }, + E: { value: 'አ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: { a: { value: 'âļŠ', next: null }, A: { value: 'âļŠ', next: null } } }, + O: { value: 'áŠĻ', next: { a: { value: 'âļŠ', next: null }, A: { value: 'âļŠ', next: null } } }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { value: 'ኩ', next: null }, + U: { value: 'ኩ', next: null }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + O: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + }, + }, + K: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { value: 'ኩ', next: null }, + U: { value: 'ኩ', next: null }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + O: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + O: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + O: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: null }, + U: { value: 'ዙ', next: null }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + O: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + }, + }, + Z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: null }, + U: { value: 'ዙ', next: null }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + O: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + O: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + O: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: { a: { value: 'âļŒ', next: null }, A: { value: 'âļŒ', next: null } } }, + O: { value: 'á‹ļ', next: { a: { value: 'âļŒ', next: null }, A: { value: 'âļŒ', next: null } } }, + }, + }, + D: { + value: 'á‹Ŋ', + next: { + e: { value: 'ዸ', next: null }, + E: { value: 'ዸ', next: null }, + u: { value: 'ዹ', next: null }, + U: { value: 'ዹ', next: null }, + i: { value: 'á‹ē', next: { e: { value: 'á‹ŧ', next: null }, E: { value: 'á‹ŧ', next: null } } }, + I: { value: 'á‹ē', next: { e: { value: 'á‹ŧ', next: null }, E: { value: 'á‹ŧ', next: null } } }, + a: { value: 'á‹ģ', next: null }, + A: { value: 'á‹ģ', next: null }, + o: { value: 'ዾ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ዾ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + O: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + O: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + O: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + O: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: null }, + U: { value: 'ጡ', next: null }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'áŒĻ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: null }, + U: { value: 'ጩ', next: null }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ጮ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: null }, + U: { value: 'ጱ', next: null }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: { a: { value: 'âļ‘', next: null }, A: { value: 'âļ‘', next: null } } }, + O: { value: 'áŒļ', next: { a: { value: 'âļ‘', next: null }, A: { value: 'âļ‘', next: null } } }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: null }, + U: { value: 'ፑ', next: null }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: { a: { value: 'âļ’', next: null }, A: { value: 'âļ’', next: null } } }, + O: { value: 'ፖ', next: { a: { value: 'âļ’', next: null }, A: { value: 'âļ’', next: null } } }, + }, + }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: { a: { value: 'ፇ', next: null }, A: { value: 'ፇ', next: null } } }, + O: { value: 'ፆ', next: { a: { value: 'ፇ', next: null }, A: { value: 'ፇ', next: null } } }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/sgw-ET.ts b/packages/ethiopic-layouts/src/sgw-ET.ts new file mode 100644 index 0000000..bb5e92d --- /dev/null +++ b/packages/ethiopic-layouts/src/sgw-ET.ts @@ -0,0 +1,1071 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Sebatbeit', regions: ['sgw-ET'] }, + layout: { + h: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + U: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + H: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + U: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + K: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + U: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + U: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + Y: { + value: 'ⷅ', + next: { + e: { value: 'ⷀ', next: null }, + E: { value: 'ⷀ', next: null }, + u: { value: '⡁', next: null }, + U: { value: '⡁', next: null }, + i: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + I: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + a: { value: '⡃', next: null }, + A: { value: '⡃', next: null }, + o: { value: 'ⷆ', next: null }, + O: { value: 'ⷆ', next: null }, + }, + }, + }, + }, + Q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + Y: { + value: 'ⷅ', + next: { + e: { value: 'ⷀ', next: null }, + E: { value: 'ⷀ', next: null }, + u: { value: '⡁', next: null }, + U: { value: '⡁', next: null }, + i: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + I: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + a: { value: '⡃', next: null }, + A: { value: '⡃', next: null }, + o: { value: 'ⷆ', next: null }, + O: { value: 'ⷆ', next: null }, + }, + }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + U: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + U: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + a: { + value: 'áŠĨ', + next: { + e: { value: 'ኧ', next: null }, + E: { value: 'ኧ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'አ', next: null }, + A: { value: 'አ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + Y: { + value: 'ⷍ', + next: { + e: { value: '⡈', next: null }, + E: { value: '⡈', next: null }, + u: { value: 'ⷉ', next: null }, + U: { value: 'ⷉ', next: null }, + i: { value: 'ⷊ', next: { e: { value: 'ⷌ', next: null }, E: { value: 'ⷌ', next: null } } }, + I: { value: 'ⷊ', next: { e: { value: 'ⷌ', next: null }, E: { value: 'ⷌ', next: null } } }, + a: { value: 'ⷋ', next: null }, + A: { value: 'ⷋ', next: null }, + o: { value: 'ⷎ', next: null }, + O: { value: 'ⷎ', next: null }, + }, + }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + Y: { + value: 'ⷝ', + next: { + e: { value: '⡘', next: null }, + E: { value: '⡘', next: null }, + u: { value: 'ⷙ', next: null }, + U: { value: 'ⷙ', next: null }, + i: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + I: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + a: { value: 'ⷛ', next: null }, + A: { value: 'ⷛ', next: null }, + o: { value: 'ⷞ', next: null }, + O: { value: 'ⷞ', next: null }, + }, + }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + Y: { + value: 'ⷝ', + next: { + e: { value: '⡘', next: null }, + E: { value: '⡘', next: null }, + u: { value: 'ⷙ', next: null }, + U: { value: 'ⷙ', next: null }, + i: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + I: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + a: { value: 'ⷛ', next: null }, + A: { value: 'ⷛ', next: null }, + o: { value: 'ⷞ', next: null }, + O: { value: 'ⷞ', next: null }, + }, + }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: null }, + O: { value: 'ፆ', next: null }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + U: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + U: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { + value: 'ፑ', + next: { + e: { value: 'ᎌ', next: null }, + E: { value: 'ᎌ', next: null }, + u: { value: 'ᎍ', next: null }, + U: { value: 'ᎍ', next: null }, + i: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + I: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + a: { value: 'ፗ', next: null }, + A: { value: 'ፗ', next: null }, + }, + }, + U: { + value: 'ፑ', + next: { + e: { value: 'ᎌ', next: null }, + E: { value: 'ᎌ', next: null }, + u: { value: 'ᎍ', next: null }, + U: { value: 'ᎍ', next: null }, + i: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + I: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + a: { value: 'ፗ', next: null }, + A: { value: 'ፗ', next: null }, + }, + }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/ti-ER.ts b/packages/ethiopic-layouts/src/ti-ER.ts new file mode 100644 index 0000000..ed80e2a --- /dev/null +++ b/packages/ethiopic-layouts/src/ti-ER.ts @@ -0,0 +1,829 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Tigrinya(Eritrean)', regions: ['ti-ER'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቕ', + next: { + e: { value: 'ቐ', next: null }, + E: { value: 'ቐ', next: null }, + u: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + U: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + i: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + I: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + a: { value: 'ቓ', next: null }, + A: { value: 'ቓ', next: null }, + o: { value: 'ቖ', next: null }, + O: { value: 'ቖ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + v: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + V: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + U: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + U: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/ti-ET.ts b/packages/ethiopic-layouts/src/ti-ET.ts new file mode 100644 index 0000000..e11db50 --- /dev/null +++ b/packages/ethiopic-layouts/src/ti-ET.ts @@ -0,0 +1,919 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Tigrinya(Ethiopia)', regions: ['ti-ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + h: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: null }, + O: { value: 'ኆ', next: null }, + }, + }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + U: { value: 'ሙ', next: { a: { value: 'ሟ', next: null }, A: { value: 'ሟ', next: null } } }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቕ', + next: { + e: { value: 'ቐ', next: null }, + E: { value: 'ቐ', next: null }, + u: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + U: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + i: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + I: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + a: { value: 'ቓ', next: null }, + A: { value: 'ቓ', next: null }, + o: { value: 'ቖ', next: null }, + O: { value: 'ቖ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + U: { value: 'ቡ', next: { a: { value: 'ቧ', next: null }, A: { value: 'ቧ', next: null } } }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + v: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + V: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + U: { + value: 'ኹ', + next: { + e: { value: 'ዀ', next: null }, + E: { value: 'ዀ', next: null }, + u: { value: 'ዅ', next: null }, + U: { value: 'ዅ', next: null }, + i: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + I: { value: 'ዂ', next: { e: { value: 'ዄ', next: null }, E: { value: 'ዄ', next: null } } }, + a: { value: 'ዃ', next: null }, + A: { value: 'ዃ', next: null }, + }, + }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: null }, + O: { value: 'ፆ', next: null }, + }, + }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + U: { value: 'ፉ', next: { a: { value: 'ፏ', next: null }, A: { value: 'ፏ', next: null } } }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + U: { value: 'ፑ', next: { a: { value: 'ፗ', next: null }, A: { value: 'ፗ', next: null } } }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/src/xst-ET.ts b/packages/ethiopic-layouts/src/xst-ET.ts new file mode 100644 index 0000000..b992e1d --- /dev/null +++ b/packages/ethiopic-layouts/src/xst-ET.ts @@ -0,0 +1,666 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: "Silt'e", regions: ['xst-ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + H: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { value: 'ሁ', next: null }, + U: { value: 'ሁ', next: null }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: null }, + U: { value: 'ሉ', next: null }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { value: 'ሙ', next: null }, + U: { value: 'ሙ', next: null }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: null }, + U: { value: 'ሊ', next: null }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: null }, + O: { value: 'ሎ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: null }, + U: { value: 'ሹ', next: null }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + S: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: null }, + U: { value: 'ሹ', next: null }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: null }, + O: { value: 'áˆļ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: null }, + U: { value: 'ሚ', next: null }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: null }, + O: { value: 'ሞ', next: null }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + Q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { value: 'ቁ', next: null }, + U: { value: 'ቁ', next: null }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: null }, + O: { value: 'ቆ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + v: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + V: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { value: 'ቡ', next: null }, + U: { value: 'ቡ', next: null }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: null }, + O: { value: 'á‰Ļ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: null }, + U: { value: 'ቱ', next: null }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: null }, + O: { value: 'á‰ļ', next: null }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: null }, + U: { value: 'ቹ', next: null }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: null }, + O: { value: 'ቾ', next: null }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: null }, + U: { value: 'ኑ', next: null }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: null }, + O: { value: 'ኖ', next: null }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: null }, + U: { value: 'ኙ', next: null }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: null }, + O: { value: 'ኞ', next: null }, + }, + }, + a: { + value: 'አ', + next: { + e: { value: 'áŠĨ', next: null }, + E: { value: 'áŠĨ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: null }, + O: { value: 'áŠĻ', next: null }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { value: 'ኩ', next: null }, + U: { value: 'ኩ', next: null }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: null }, + O: { value: 'ኮ', next: null }, + }, + }, + K: { + value: 'áŠŊ', + next: { + e: { value: 'ኸ', next: null }, + E: { value: 'ኸ', next: null }, + u: { value: 'ኹ', next: null }, + U: { value: 'ኹ', next: null }, + i: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + I: { value: 'áŠē', next: { e: { value: 'áŠŧ', next: null }, E: { value: 'áŠŧ', next: null } } }, + a: { value: 'áŠģ', next: null }, + A: { value: 'áŠģ', next: null }, + o: { value: 'ኾ', next: null }, + O: { value: 'ኾ', next: null }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: null }, + O: { value: 'ዎ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: null }, + U: { value: 'ዙ', next: null }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: null }, + O: { value: 'ዞ', next: null }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: null }, + U: { value: 'ዡ', next: null }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: null }, + O: { value: 'ዮ', next: null }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + D: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: null }, + U: { value: 'ዱ', next: null }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: null }, + O: { value: 'á‹ļ', next: null }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: null }, + U: { value: 'ጁ', next: null }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: null }, + O: { value: 'ጆ', next: null }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + G: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { value: 'ጉ', next: null }, + U: { value: 'ጉ', next: null }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: null }, + O: { value: 'ጎ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: null }, + U: { value: 'ጡ', next: null }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: null }, + O: { value: 'áŒĻ', next: null }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: null }, + U: { value: 'ጩ', next: null }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: null }, + O: { value: 'ጮ', next: null }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: null }, + U: { value: 'ጱ', next: null }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: null }, + O: { value: 'áŒļ', next: null }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: null }, + U: { value: 'ፉ', next: null }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { value: 'ፉ', next: null }, + U: { value: 'ፉ', next: null }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { value: 'ፑ', next: null }, + U: { value: 'ፑ', next: null }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: null }, + O: { value: 'ፖ', next: null }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/ethiopic-layouts/tsconfig.json b/packages/ethiopic-layouts/tsconfig.json new file mode 100644 index 0000000..e2317b1 --- /dev/null +++ b/packages/ethiopic-layouts/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.build.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "composite": true + }, + "exclude": ["src/layouts.ts", "src/generate-from-csv.ts"], + "references": [ + { + "path": "../layout-generator" + }, + { + "path": "../core" + } + ] +} diff --git a/packages/layout-generator/README.md b/packages/layout-generator/README.md new file mode 100644 index 0000000..0d4cf76 --- /dev/null +++ b/packages/layout-generator/README.md @@ -0,0 +1 @@ +## @keywrite/layout-generator diff --git a/packages/layout-generator/jest.config.js b/packages/layout-generator/jest.config.js new file mode 100644 index 0000000..a13adf5 --- /dev/null +++ b/packages/layout-generator/jest.config.js @@ -0,0 +1,5 @@ +const baseConfig = require('../../jest.config'); + +module.exports = { + ...baseConfig, +}; diff --git a/packages/layout-generator/package.json b/packages/layout-generator/package.json new file mode 100644 index 0000000..e71ec26 --- /dev/null +++ b/packages/layout-generator/package.json @@ -0,0 +1,23 @@ +{ + "name": "@keywrite/layout-generator", + "version": "0.1.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "license": "MIT", + "repository": { + "type": "git", + "directory": "packages/layout-generator", + "url": "https://github.com/eyuelberga/keywrite.git" + }, + "scripts": { + "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo", + "prepack": "yarn build", + "build": "yarn clean && tsc --build && cp \"./package.json\" ./dist/", + "test": "jest --passWithNoTests", + "lint": "eslint \"./src/**/*.{ts,tsx}\" --max-warnings=10" + }, + "dependencies": {}, + "devDependencies": { + "@keywrite/core": "^0.1.0" + } +} diff --git a/packages/layout-generator/src/core.ts b/packages/layout-generator/src/core.ts new file mode 100644 index 0000000..2cc6f16 --- /dev/null +++ b/packages/layout-generator/src/core.ts @@ -0,0 +1,40 @@ +import { toSequence, setDeep, toPath } from './utils'; +import { ObjectPath } from './interfaces'; +import { KeyboardLayout } from '@keywrite/core'; +const generateKeymap = (keys: string[]) => { + const keymap: Record = {}; + keys.forEach((key) => { + const combination = toSequence(key); + keymap[key] = combination; + }); + return keymap; +}; +const filterKeys = (row: Record, keyCol: string, defaultCol: string): string[] => { + return Object.keys(row).filter((k) => { + return k !== keyCol && k !== defaultCol && row[k].trim(); + }); +}; +const setSymbolMap = (layout: KeyboardLayout, value: string, path: ObjectPath): void => { + const symbolMap = { value, next: null }; + setDeep(layout, path, symbolMap); +}; + +export const generateMapForRow = ( + layout: KeyboardLayout, + row: Record, + keyCol = 'KEY', + defaultCol = '_', +): void => { + const primaryPaths = toPath(toSequence(row[keyCol])); + for (const primary of primaryPaths) { + setSymbolMap(layout, row[defaultCol], `${primary}`); + const relevantKeys = filterKeys(row, keyCol, defaultCol); + const keymap = generateKeymap(relevantKeys); + for (const key of relevantKeys) { + const paths = toPath(keymap[key], primary); + for (const path of paths) { + setSymbolMap(layout, row[key], path); + } + } + } +}; diff --git a/packages/layout-generator/src/index.ts b/packages/layout-generator/src/index.ts new file mode 100644 index 0000000..aabced9 --- /dev/null +++ b/packages/layout-generator/src/index.ts @@ -0,0 +1,3 @@ +export * from './utils'; +export * from './core'; +export * from './interfaces'; diff --git a/packages/layout-generator/src/interfaces.ts b/packages/layout-generator/src/interfaces.ts new file mode 100644 index 0000000..d9cf37b --- /dev/null +++ b/packages/layout-generator/src/interfaces.ts @@ -0,0 +1 @@ +export type ObjectPath = string | string[]; diff --git a/packages/layout-generator/src/utils.ts b/packages/layout-generator/src/utils.ts new file mode 100644 index 0000000..d0c3959 --- /dev/null +++ b/packages/layout-generator/src/utils.ts @@ -0,0 +1,55 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { ObjectPath } from './interfaces'; +export const resolvePath = (path: ObjectPath, obj: Record, separator = '.'): any => { + const properties = Array.isArray(path) ? path : path.split(separator); + return properties.reduce((prev, curr) => prev && prev[curr], obj); +}; +export const toSequence = (key: string): string[] => { + // match all inclosed in square brackets, or any word character and some selected symbols + const matches = key.match(/\[.*?\]|\w|[<>,.;:]/g); + if (matches) { + //eslint-disable-next-line + return matches.map((k) => k.replace(/[\]\[()+]/g, '')); + } + return []; +}; +// Create a nested structure of objects along path within obj. Only overwrites the final value. +export const setDeep = (obj: Record, path: ObjectPath, value: any, separator = '.') => { + const properties = Array.isArray(path) ? path : path.split(separator); + return (setStructure(obj, properties.slice(0, -1))[properties[properties.length - 1]] = value); +}; +// Set obj[key] to value if key is not in object, and return obj[key] +const setDefault = (obj: Record, key: any, value: any) => { + if (!obj[key]) { + obj[key] = value; + } + return obj[key]; +}; + +// Create a nested structure of objects along path within obj. Does not overwrite any value. +const setStructure = (obj: Record, path: string[]) => + path.reduce((obj, segment) => setDefault(obj, segment, {}), obj); +// create path combination +export const toPath = (sequence: string[], previous?: string): string[] => { + const pathList: string[] = []; + const addPrevious = previous ? `${previous}.next.` : ''; + if (sequence.length > 1) { + for (const c of sequence[0]) { + for (const c2 of sequence[1]) { + if (sequence[2]) { + for (const c3 of sequence[2]) { + pathList.push(`${addPrevious}${c}.next.${c2}.next.${c3}`); + } + } else { + pathList.push(`${addPrevious}${c}.next.${c2}`); + } + } + } + } else if (sequence.length) { + for (const c of sequence[0]) { + pathList.push(`${addPrevious}${c}`); + } + } + + return pathList; +}; diff --git a/packages/layout-generator/tests/core.spec.ts b/packages/layout-generator/tests/core.spec.ts new file mode 100644 index 0000000..78faa7c --- /dev/null +++ b/packages/layout-generator/tests/core.spec.ts @@ -0,0 +1,197 @@ +import { generateMapForRow } from '../src/core'; +describe('core.ts', () => { + it('should work as expected', () => { + const layout = {}; + const row = { + KEY: 'h', + '+[eE]': 'ሀ', + '+[uU]': 'ሁ', + '+[iI]': 'ሂ', + '+[aA]': 'ሃ', + '+[iI][eE]': 'ሄ', + _: 'ህ', + '+[oO]': 'ሆ', + '+[oO][aA]': ' ', + '+[uU][eE]': 'ኈ', + '+[uU][uU]': 'ኍ', + '+[uU][iI]': 'ኊ', + '+[uU][aA]': 'ኋ', + '+[uU][iI][eE]': 'ኌ', + }; + generateMapForRow(layout, row); + expect(layout).toEqual({ + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + I: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + I: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { + value: 'ሂ', + next: { + e: { value: 'ሄ', next: null }, + E: { value: 'ሄ', next: null }, + }, + }, + I: { + value: 'ሂ', + next: { + e: { value: 'ሄ', next: null }, + E: { value: 'ሄ', next: null }, + }, + }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + }); + }); + it('should work custom key and default columns', () => { + const layout = {}; + const row = { + CODE: 'h', + '+[eE]': 'ሀ', + '+[uU]': 'ሁ', + '+[iI]': 'ሂ', + '+[aA]': 'ሃ', + '+[iI][eE]': 'ሄ', + DEFAULT: 'ህ', + '+[oO]': 'ሆ', + '+[oO][aA]': ' ', + '+[uU][eE]': 'ኈ', + '+[uU][uU]': 'ኍ', + '+[uU][iI]': 'ኊ', + '+[uU][aA]': 'ኋ', + '+[uU][iI][eE]': 'ኌ', + }; + generateMapForRow(layout, row, 'CODE', 'DEFAULT'); + expect(layout).toEqual({ + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + I: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + I: { + value: 'ኊ', + next: { + e: { value: 'ኌ', next: null }, + E: { value: 'ኌ', next: null }, + }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { + value: 'ሂ', + next: { + e: { value: 'ሄ', next: null }, + E: { value: 'ሄ', next: null }, + }, + }, + I: { + value: 'ሂ', + next: { + e: { value: 'ሄ', next: null }, + E: { value: 'ሄ', next: null }, + }, + }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: null }, + O: { value: 'ሆ', next: null }, + }, + }, + }); + }); +}); diff --git a/packages/layout-generator/tests/utils.spec.ts b/packages/layout-generator/tests/utils.spec.ts new file mode 100644 index 0000000..306639f --- /dev/null +++ b/packages/layout-generator/tests/utils.spec.ts @@ -0,0 +1,117 @@ +import { resolvePath, toSequence, setDeep, toPath } from '../src'; +const expectArrayEquivalence = (actual: T[], expected: T[]) => { + expect(actual).toEqual(expect.arrayContaining(expected)); + expect(expected).toEqual(expect.arrayContaining(actual)); +}; + +describe('utils.ts', () => { + describe('resolvePath', () => { + it('should work with both array and string paths', () => { + const obj: Record = { val1: { val2: { val3: 'value3' } } }; + const expectedValue = 'value3'; + const stringPath = 'val1.val2.val3'; + const arrayPath = ['val1', 'val2', 'val3']; + expect(resolvePath(stringPath, obj)).toBe(expectedValue); + expect(resolvePath(arrayPath, obj)).toBe(expectedValue); + }); + it('should work with a custom separator', () => { + const obj: Record = { val1: { val2: { val3: 'value3' } } }; + const expectedValue = 'value3'; + const stringPath = 'val1:val2:val3'; + expect(resolvePath(stringPath, obj, ':')).toBe(expectedValue); + }); + }); + + describe('toSequence', () => { + it('square brackets means OR', () => { + expect(toSequence('+[eE]')).toStrictEqual(['eE']); + expect(toSequence('[qQ]')).toStrictEqual(['qQ']); + }); + it('multiple characters without brackets means a SEQUENCE', () => { + expect(toSequence('hh')).toStrictEqual(['h', 'h']); + expect(toSequence('SS')).toStrictEqual(['S', 'S']); + }); + it('should work will various key patterns', () => { + expect(toSequence('+[aA] +[iI][eE]')).toStrictEqual(['aA', 'iI', 'eE']); + expect(toSequence('+[uU][iI][eE]')).toStrictEqual(['uU', 'iI', 'eE']); + expect(toSequence('a[eE][eE]')).toStrictEqual(['a', 'eE', 'eE']); + expect(toSequence('[xX][xX]')).toStrictEqual(['xX', 'xX']); + }); + it('should return empty array if no sequence in key', () => { + expect(toSequence('')).toStrictEqual([]); + }); + }); + + describe('setDeep', () => { + it('should overwrite object value', () => { + const obj: Record = { val1: { val2: { val3: 1 } } }; + const path = ['val1', 'val2', 'val3']; + const value = 10; + setDeep(obj, path, value); + expect(obj?.val1?.val2?.val3).toEqual(value); + }); + it('should create path if it does not exist on object', () => { + const obj: Record = { val1: null }; + const path = ['val1', 'val2', 'val3']; + const value = 10; + setDeep(obj, path, value); + expect(obj?.val1?.val2?.val3).toEqual(value); + }); + it('should work with path string', () => { + const obj: Record = {}; + const path = 'val1.val2.val3'; + const value = 10; + setDeep(obj, path, value); + expect(obj?.val1?.val2?.val3).toEqual(value); + }); + it('should work with custom path separator', () => { + const obj: Record = {}; + const path = 'val1:val2:val3'; + const value = 10; + setDeep(obj, path, value, ':'); + expect(obj?.val1?.val2?.val3).toEqual(value); + }); + }); + + describe('toPath', () => { + it('should generate all possible path from sequence', () => { + expectArrayEquivalence(toPath(['aA', 'iI', 'eE']), [ + 'a.next.i.next.e', + 'a.next.i.next.E', + 'a.next.I.next.e', + 'a.next.I.next.E', + 'A.next.i.next.e', + 'A.next.i.next.E', + 'A.next.I.next.e', + 'A.next.I.next.E', + ]); + expectArrayEquivalence(toPath(['h', 'h']), ['h.next.h']); + expectArrayEquivalence(toPath(['s']), ['s']); + expectArrayEquivalence(toPath(['xX', 'xX']), ['x.next.x', 'x.next.X', 'X.next.x', 'X.next.X']); + }); + + it('should concatinate with previous path if given', () => { + expectArrayEquivalence(toPath(['aA', 'iI', 'eE'], 'previous.path'), [ + 'previous.path.next.a.next.i.next.e', + 'previous.path.next.a.next.i.next.E', + 'previous.path.next.a.next.I.next.e', + 'previous.path.next.a.next.I.next.E', + 'previous.path.next.A.next.i.next.e', + 'previous.path.next.A.next.i.next.E', + 'previous.path.next.A.next.I.next.e', + 'previous.path.next.A.next.I.next.E', + ]); + expectArrayEquivalence(toPath(['h', 'h'], 'previous.path'), ['previous.path.next.h.next.h']); + expectArrayEquivalence(toPath(['s'], 'previous.path'), ['previous.path.next.s']); + expectArrayEquivalence(toPath(['xX', 'xX'], 'previous.path'), [ + 'previous.path.next.x.next.x', + 'previous.path.next.x.next.X', + 'previous.path.next.X.next.x', + 'previous.path.next.X.next.X', + ]); + }); + it('should return empty array if no sequence', () => { + expectArrayEquivalence(toPath([]), []); + }); + }); +}); diff --git a/packages/layout-generator/tsconfig.json b/packages/layout-generator/tsconfig.json new file mode 100644 index 0000000..06a5b68 --- /dev/null +++ b/packages/layout-generator/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.build.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "composite": true + }, + "include": ["src/**/*"], + "references": [ + { + "path": "../core" + } + ] +} diff --git a/packages/web/README.md b/packages/web/README.md new file mode 100644 index 0000000..d15f97b --- /dev/null +++ b/packages/web/README.md @@ -0,0 +1,31 @@ +## @keywrite/web + +Keywrite is a Javascript library that allows you to type non-latin scripts in any web based application using a standard keyboard. + +## Installation + +```sh +$ yarn add @keywrite/web + +# or + +$ npm install @keywrite/web +``` + +## Basic usage + +```javascript +import { KeywriteWeb } from '@keywrite/web'; + +// keyboard layout definition +import layout from './layout'; + +// add to HTMLInputElement +new KeywriteWeb(document.querySelector('input')); +// add to HTMLTextAreaElement +new KeywriteWeb(document.querySelector('textarea')); +``` + +## License + +MIT Š [Eyuel Berga](https://github.com/eyuelberga) diff --git a/packages/web/jest.config.js b/packages/web/jest.config.js new file mode 100644 index 0000000..a13adf5 --- /dev/null +++ b/packages/web/jest.config.js @@ -0,0 +1,5 @@ +const baseConfig = require('../../jest.config'); + +module.exports = { + ...baseConfig, +}; diff --git a/packages/web/package.json b/packages/web/package.json new file mode 100644 index 0000000..d041c64 --- /dev/null +++ b/packages/web/package.json @@ -0,0 +1,23 @@ +{ + "name": "@keywrite/web", + "version": "0.1.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "license": "MIT", + "repository": { + "type": "git", + "directory": "packages/web", + "url": "https://github.com/eyuelberga/keywrite.git" + }, + "scripts": { + "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo", + "prepack": "yarn build", + "build": "yarn clean && tsc --build && cp \"./package.json\" ./dist/", + "test": "jest --passWithNoTests", + "lint": "eslint \"./src/**/*.{ts,tsx}\" --max-warnings=10" + }, + "dependencies": { + "@keywrite/core": "^0.1.0" + }, + "devDependencies": {} +} diff --git a/packages/web/src/ET.ts b/packages/web/src/ET.ts new file mode 100644 index 0000000..cf5694d --- /dev/null +++ b/packages/web/src/ET.ts @@ -0,0 +1,1258 @@ +import { KeyboardLayout } from '@keywrite/core'; +type LayoutMeta = { name: string; regions: string[] }; +type LayoutSpec = { meta: LayoutMeta; layout: KeyboardLayout }; +const layout: LayoutSpec = { + meta: { name: 'Ethiopic(Language Neutral)', regions: ['ET'] }, + layout: { + h: { + value: 'ህ', + next: { + e: { value: 'ሀ', next: null }, + E: { value: 'ሀ', next: null }, + u: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ሁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + I: { value: 'ኊ', next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } } }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + I: { value: 'ሂ', next: { e: { value: 'ሄ', next: null }, E: { value: 'ሄ', next: null } } }, + a: { value: 'ሃ', next: null }, + A: { value: 'ሃ', next: null }, + o: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + O: { value: 'ሆ', next: { a: { value: 'ሇ', next: null }, A: { value: 'ሇ', next: null } } }, + h: { + value: 'ኅ', + next: { + e: { value: 'ኀ', next: null }, + E: { value: 'ኀ', next: null }, + u: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + U: { + value: 'ኁ', + next: { + e: { value: 'ኈ', next: null }, + E: { value: 'ኈ', next: null }, + u: { value: 'ኍ', next: null }, + U: { value: 'ኍ', next: null }, + i: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + I: { + value: 'ኊ', + next: { e: { value: 'ኌ', next: null }, E: { value: 'ኌ', next: null } }, + }, + a: { value: 'ኋ', next: null }, + A: { value: 'ኋ', next: null }, + }, + }, + i: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + I: { value: 'ኂ', next: { e: { value: 'ኄ', next: null }, E: { value: 'ኄ', next: null } } }, + a: { value: 'ኃ', next: null }, + A: { value: 'ኃ', next: null }, + o: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + O: { value: 'ኆ', next: { a: { value: 'ኇ', next: null }, A: { value: 'ኇ', next: null } } }, + }, + }, + }, + }, + l: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + }, + }, + L: { + value: 'ል', + next: { + e: { value: 'ለ', next: null }, + E: { value: 'ለ', next: null }, + u: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + U: { value: 'ሉ', next: { a: { value: 'ሏ', next: null }, A: { value: 'ሏ', next: null } } }, + i: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + I: { value: 'ሊ', next: { e: { value: 'ሌ', next: null }, E: { value: 'ሌ', next: null } } }, + a: { value: 'ላ', next: null }, + A: { value: 'ላ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ€', next: null }, A: { value: 'âļ€', next: null } } }, + }, + }, + H: { + value: 'ሕ', + next: { + e: { value: 'ሐ', next: null }, + E: { value: 'ሐ', next: null }, + u: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + U: { value: 'ሑ', next: { a: { value: 'ሗ', next: null }, A: { value: 'ሗ', next: null } } }, + i: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + I: { value: 'ሒ', next: { e: { value: 'ሔ', next: null }, E: { value: 'ሔ', next: null } } }, + a: { value: 'ሓ', next: null }, + A: { value: 'ሓ', next: null }, + o: { value: 'ሖ', next: null }, + O: { value: 'ሖ', next: null }, + }, + }, + m: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + U: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + Y: { value: 'ፙ', next: null }, + }, + }, + M: { + value: 'ም', + next: { + e: { value: 'መ', next: null }, + E: { value: 'መ', next: null }, + u: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + U: { + value: 'ሙ', + next: { + e: { value: 'ᎀ', next: null }, + E: { value: 'ᎀ', next: null }, + u: { value: 'ᎃ', next: null }, + U: { value: 'ᎃ', next: null }, + i: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + I: { value: 'ᎁ', next: { e: { value: 'ᎂ', next: null }, E: { value: 'ᎂ', next: null } } }, + a: { value: 'ሟ', next: null }, + A: { value: 'ሟ', next: null }, + }, + }, + i: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + I: { value: 'ሚ', next: { e: { value: 'ሜ', next: null }, E: { value: 'ሜ', next: null } } }, + a: { value: 'ማ', next: null }, + A: { value: 'ማ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + Y: { value: 'ፙ', next: null }, + }, + }, + s: { + value: 'áˆĩ', + next: { + e: { value: 'ሰ', next: null }, + E: { value: 'ሰ', next: null }, + u: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + U: { value: 'ሹ', next: { a: { value: 'ሡ', next: null }, A: { value: 'ሡ', next: null } } }, + i: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + I: { value: 'ሲ', next: { e: { value: 'ሴ', next: null }, E: { value: 'ሴ', next: null } } }, + a: { value: 'áˆŗ', next: null }, + A: { value: 'áˆŗ', next: null }, + o: { value: 'áˆļ', next: { a: { value: 'âļƒ', next: null }, A: { value: 'âļƒ', next: null } } }, + O: { value: 'áˆļ', next: { a: { value: 'âļƒ', next: null }, A: { value: 'âļƒ', next: null } } }, + }, + }, + r: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + Y: { value: 'ፘ', next: null }, + }, + }, + R: { + value: 'ር', + next: { + e: { value: 'ረ', next: null }, + E: { value: 'ረ', next: null }, + u: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + U: { value: 'ሊ', next: { a: { value: 'ሯ', next: null }, A: { value: 'ሯ', next: null } } }, + i: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + I: { value: 'áˆĒ', next: { e: { value: 'áˆŦ', next: null }, E: { value: 'áˆŦ', next: null } } }, + a: { value: 'áˆĢ', next: null }, + A: { value: 'áˆĢ', next: null }, + o: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + O: { value: 'ሎ', next: { a: { value: 'âļ‚', next: null }, A: { value: 'âļ‚', next: null } } }, + Y: { value: 'ፘ', next: null }, + }, + }, + x: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + x: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + X: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + }, + }, + X: { + value: 'áˆŊ', + next: { + e: { value: 'ሸ', next: null }, + E: { value: 'ሸ', next: null }, + u: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + U: { value: 'ሚ', next: { a: { value: 'áˆŋ', next: null }, A: { value: 'áˆŋ', next: null } } }, + i: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + I: { value: 'áˆē', next: { e: { value: 'áˆŧ', next: null }, E: { value: 'áˆŧ', next: null } } }, + a: { value: 'áˆģ', next: null }, + A: { value: 'áˆģ', next: null }, + o: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + O: { value: 'ሞ', next: { a: { value: 'âļ„', next: null }, A: { value: 'âļ„', next: null } } }, + x: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + X: { + value: 'âļĨ', + next: { + e: { value: 'âļ ', next: null }, + E: { value: 'âļ ', next: null }, + u: { value: 'âļĄ', next: null }, + U: { value: 'âļĄ', next: null }, + i: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + I: { value: 'âļĸ', next: { e: { value: 'âļ¤', next: null }, E: { value: 'âļ¤', next: null } } }, + a: { value: 'âļŖ', next: null }, + A: { value: 'âļŖ', next: null }, + o: { value: 'âļĻ', next: null }, + O: { value: 'âļĻ', next: null }, + }, + }, + }, + }, + q: { + value: 'ቅ', + next: { + e: { value: 'ቀ', next: null }, + E: { value: 'ቀ', next: null }, + u: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + U: { + value: 'ቁ', + next: { + e: { value: 'ቈ', next: null }, + E: { value: 'ቈ', next: null }, + u: { value: 'ቍ', next: null }, + U: { value: 'ቍ', next: null }, + i: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + I: { value: 'ቊ', next: { e: { value: 'ቌ', next: null }, E: { value: 'ቌ', next: null } } }, + a: { value: 'ቋ', next: null }, + A: { value: 'ቋ', next: null }, + }, + }, + i: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + I: { value: 'ቂ', next: { e: { value: 'ቄ', next: null }, E: { value: 'ቄ', next: null } } }, + a: { value: 'ቃ', next: null }, + A: { value: 'ቃ', next: null }, + o: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + O: { value: 'ቆ', next: { a: { value: 'ቇ', next: null }, A: { value: 'ቇ', next: null } } }, + Y: { + value: 'ⷅ', + next: { + e: { value: 'ⷀ', next: null }, + E: { value: 'ⷀ', next: null }, + u: { value: '⡁', next: null }, + U: { value: '⡁', next: null }, + i: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + I: { value: 'ⷂ', next: { e: { value: 'ⷄ', next: null }, E: { value: 'ⷄ', next: null } } }, + a: { value: '⡃', next: null }, + A: { value: '⡃', next: null }, + o: { value: 'ⷆ', next: null }, + O: { value: 'ⷆ', next: null }, + }, + }, + }, + }, + Q: { + value: 'ቕ', + next: { + e: { value: 'ቐ', next: null }, + E: { value: 'ቐ', next: null }, + u: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + U: { + value: 'ቑ', + next: { + e: { value: 'ቘ', next: null }, + E: { value: 'ቘ', next: null }, + u: { value: 'ቝ', next: null }, + U: { value: 'ቝ', next: null }, + i: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + I: { value: 'ቚ', next: { e: { value: 'ቜ', next: null }, E: { value: 'ቜ', next: null } } }, + a: { value: 'ቛ', next: null }, + A: { value: 'ቛ', next: null }, + }, + }, + i: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + I: { value: 'ቒ', next: { e: { value: 'ቔ', next: null }, E: { value: 'ቔ', next: null } } }, + a: { value: 'ቓ', next: null }, + A: { value: 'ቓ', next: null }, + o: { value: 'ቖ', next: null }, + O: { value: 'ቖ', next: null }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + U: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + O: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + }, + }, + B: { + value: 'á‰Ĩ', + next: { + e: { value: 'በ', next: null }, + E: { value: 'በ', next: null }, + u: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + U: { + value: 'ቡ', + next: { + e: { value: 'ᎄ', next: null }, + E: { value: 'ᎄ', next: null }, + u: { value: 'ᎇ', next: null }, + U: { value: 'ᎇ', next: null }, + i: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + I: { value: 'ᎅ', next: { e: { value: 'ᎆ', next: null }, E: { value: 'ᎆ', next: null } } }, + a: { value: 'ቧ', next: null }, + A: { value: 'ቧ', next: null }, + }, + }, + i: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + I: { value: 'á‰ĸ', next: { e: { value: 'ቤ', next: null }, E: { value: 'ቤ', next: null } } }, + a: { value: 'á‰Ŗ', next: null }, + A: { value: 'á‰Ŗ', next: null }, + o: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + O: { value: 'á‰Ļ', next: { a: { value: 'âļ…', next: null }, A: { value: 'âļ…', next: null } } }, + }, + }, + v: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + V: { + value: 'ቭ', + next: { + e: { value: 'ቨ', next: null }, + E: { value: 'ቨ', next: null }, + u: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + U: { value: 'ቩ', next: { a: { value: 'ቯ', next: null }, A: { value: 'ቯ', next: null } } }, + i: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + I: { value: 'á‰Ē', next: { e: { value: 'á‰Ŧ', next: null }, E: { value: 'á‰Ŧ', next: null } } }, + a: { value: 'á‰Ģ', next: null }, + A: { value: 'á‰Ģ', next: null }, + o: { value: 'ቮ', next: null }, + O: { value: 'ቮ', next: null }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + e: { value: 'ተ', next: null }, + E: { value: 'ተ', next: null }, + u: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + U: { value: 'ቱ', next: { a: { value: 'ቷ', next: null }, A: { value: 'ቷ', next: null } } }, + i: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + I: { value: 'ቲ', next: { e: { value: 'ቴ', next: null }, E: { value: 'ቴ', next: null } } }, + a: { value: 'á‰ŗ', next: null }, + A: { value: 'á‰ŗ', next: null }, + o: { value: 'á‰ļ', next: { a: { value: 'âļ†', next: null }, A: { value: 'âļ†', next: null } } }, + O: { value: 'á‰ļ', next: { a: { value: 'âļ†', next: null }, A: { value: 'âļ†', next: null } } }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + e: { value: 'ቸ', next: null }, + E: { value: 'ቸ', next: null }, + u: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + U: { value: 'ቹ', next: { a: { value: 'á‰ŋ', next: null }, A: { value: 'á‰ŋ', next: null } } }, + i: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + I: { value: 'á‰ē', next: { e: { value: 'á‰ŧ', next: null }, E: { value: 'á‰ŧ', next: null } } }, + a: { value: 'á‰ģ', next: null }, + A: { value: 'á‰ģ', next: null }, + o: { value: 'ቾ', next: { a: { value: 'âļ‡', next: null }, A: { value: 'âļ‡', next: null } } }, + O: { value: 'ቾ', next: { a: { value: 'âļ‡', next: null }, A: { value: 'âļ‡', next: null } } }, + c: { + value: 'âļ­', + next: { + e: { value: 'âļ¨', next: null }, + E: { value: 'âļ¨', next: null }, + u: { value: 'âļŠ', next: null }, + U: { value: 'âļŠ', next: null }, + i: { value: 'âļĒ', next: { e: { value: 'âļŦ', next: null }, E: { value: 'âļŦ', next: null } } }, + I: { value: 'âļĒ', next: { e: { value: 'âļŦ', next: null }, E: { value: 'âļŦ', next: null } } }, + a: { value: 'âļĢ', next: null }, + A: { value: 'âļĢ', next: null }, + o: { value: 'âļŽ', next: null }, + O: { value: 'âļŽ', next: null }, + }, + }, + }, + }, + n: { + value: 'ን', + next: { + e: { value: 'ነ', next: null }, + E: { value: 'ነ', next: null }, + u: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + U: { value: 'ኑ', next: { a: { value: 'ኗ', next: null }, A: { value: 'ኗ', next: null } } }, + i: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + I: { value: 'ኒ', next: { e: { value: 'ኔ', next: null }, E: { value: 'ኔ', next: null } } }, + a: { value: 'ና', next: null }, + A: { value: 'ና', next: null }, + o: { value: 'ኖ', next: { a: { value: 'âļˆ', next: null }, A: { value: 'âļˆ', next: null } } }, + O: { value: 'ኖ', next: { a: { value: 'âļˆ', next: null }, A: { value: 'âļˆ', next: null } } }, + }, + }, + N: { + value: 'ኝ', + next: { + e: { value: 'ኘ', next: null }, + E: { value: 'ኘ', next: null }, + u: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + U: { value: 'ኙ', next: { a: { value: 'ኟ', next: null }, A: { value: 'ኟ', next: null } } }, + i: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + I: { value: 'ኚ', next: { e: { value: 'ኜ', next: null }, E: { value: 'ኜ', next: null } } }, + a: { value: 'ኛ', next: null }, + A: { value: 'ኛ', next: null }, + o: { value: 'ኞ', next: { a: { value: 'âļ‰', next: null }, A: { value: 'âļ‰', next: null } } }, + O: { value: 'ኞ', next: { a: { value: 'âļ‰', next: null }, A: { value: 'âļ‰', next: null } } }, + }, + }, + a: { + value: 'áŠĨ', + next: { + e: { value: '', next: { e: { value: 'ኧ', next: null }, E: { value: 'ኧ', next: null } } }, + E: { value: 'አ', next: null }, + u: { value: 'ኡ', next: null }, + U: { value: 'ኡ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + I: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + a: { value: 'áŠŖ', next: null }, + A: { value: 'áŠŖ', next: null }, + o: { value: 'áŠĻ', next: { a: { value: 'âļŠ', next: null }, A: { value: 'âļŠ', next: null } } }, + O: { value: 'áŠĻ', next: { a: { value: 'âļŠ', next: null }, A: { value: 'âļŠ', next: null } } }, + }, + }, + k: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + O: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + Y: { + value: 'ⷍ', + next: { + e: { value: '⡈', next: null }, + E: { value: '⡈', next: null }, + u: { value: 'ⷉ', next: null }, + U: { value: 'ⷉ', next: null }, + i: { value: 'ⷊ', next: { e: { value: 'ⷌ', next: null }, E: { value: 'ⷌ', next: null } } }, + I: { value: 'ⷊ', next: { e: { value: 'ⷌ', next: null }, E: { value: 'ⷌ', next: null } } }, + a: { value: 'ⷋ', next: null }, + A: { value: 'ⷋ', next: null }, + o: { value: 'ⷎ', next: null }, + O: { value: 'ⷎ', next: null }, + }, + }, + }, + }, + K: { + value: 'ክ', + next: { + e: { value: 'ከ', next: null }, + E: { value: 'ከ', next: null }, + u: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + U: { + value: 'ኩ', + next: { + e: { value: 'ኰ', next: null }, + E: { value: 'ኰ', next: null }, + u: { value: 'áŠĩ', next: null }, + U: { value: 'áŠĩ', next: null }, + i: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + I: { value: 'ኲ', next: { e: { value: 'ኴ', next: null }, E: { value: 'ኴ', next: null } } }, + a: { value: 'áŠŗ', next: null }, + A: { value: 'áŠŗ', next: null }, + }, + }, + i: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + I: { value: 'áŠĒ', next: { e: { value: 'áŠŦ', next: null }, E: { value: 'áŠŦ', next: null } } }, + a: { value: 'áŠĢ', next: null }, + A: { value: 'áŠĢ', next: null }, + o: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + O: { value: 'ኮ', next: { a: { value: 'ኯ', next: null }, A: { value: 'ኯ', next: null } } }, + Y: { + value: 'ⷕ', + next: { + e: { value: '⡐', next: null }, + E: { value: '⡐', next: null }, + u: { value: 'ⷑ', next: null }, + U: { value: 'ⷑ', next: null }, + i: { value: 'ⷒ', next: { e: { value: 'ⷔ', next: null }, E: { value: 'ⷔ', next: null } } }, + I: { value: 'ⷒ', next: { e: { value: 'ⷔ', next: null }, E: { value: 'ⷔ', next: null } } }, + a: { value: 'ⷓ', next: null }, + A: { value: 'ⷓ', next: null }, + o: { value: 'ⷖ', next: null }, + O: { value: 'ⷖ', next: null }, + }, + }, + }, + }, + w: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + O: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + }, + }, + W: { + value: 'ው', + next: { + e: { value: 'ወ', next: null }, + E: { value: 'ወ', next: null }, + u: { value: 'ዉ', next: null }, + U: { value: 'ዉ', next: null }, + i: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + I: { value: 'ዊ', next: { e: { value: 'ዌ', next: null }, E: { value: 'ዌ', next: null } } }, + a: { value: 'ዋ', next: null }, + A: { value: 'ዋ', next: null }, + o: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + O: { value: 'ዎ', next: { a: { value: 'ዏ', next: null }, A: { value: 'ዏ', next: null } } }, + }, + }, + A: { + value: 'ዐ', + next: { + e: { value: 'ዕ', next: null }, + E: { value: 'ዕ', next: null }, + u: { value: 'ዑ', next: null }, + U: { value: 'ዑ', next: null }, + i: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + a: { value: 'ዓ', next: null }, + A: { value: 'ዓ', next: null }, + o: { value: 'ዖ', next: null }, + O: { value: 'ዖ', next: null }, + }, + }, + z: { + value: 'ዝ', + next: { + e: { value: 'ዘ', next: null }, + E: { value: 'ዘ', next: null }, + u: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + U: { value: 'ዙ', next: { a: { value: 'ዟ', next: null }, A: { value: 'ዟ', next: null } } }, + i: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + I: { value: 'ዚ', next: { e: { value: 'ዜ', next: null }, E: { value: 'ዜ', next: null } } }, + a: { value: 'ዛ', next: null }, + A: { value: 'ዛ', next: null }, + o: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + O: { value: 'ዞ', next: { a: { value: 'âļ‹', next: null }, A: { value: 'âļ‹', next: null } } }, + }, + }, + Z: { + value: 'á‹Ĩ', + next: { + e: { value: 'ዠ', next: null }, + E: { value: 'ዠ', next: null }, + u: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + U: { value: 'ዡ', next: { a: { value: 'ዧ', next: null }, A: { value: 'ዧ', next: null } } }, + i: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + I: { value: 'á‹ĸ', next: { e: { value: 'ዤ', next: null }, E: { value: 'ዤ', next: null } } }, + a: { value: 'á‹Ŗ', next: null }, + A: { value: 'á‹Ŗ', next: null }, + o: { value: 'á‹Ļ', next: null }, + O: { value: 'á‹Ļ', next: null }, + Z: { + value: 'âļĩ', + next: { + e: { value: 'âļ°', next: null }, + E: { value: 'âļ°', next: null }, + u: { value: 'âļą', next: null }, + U: { value: 'âļą', next: null }, + i: { value: 'âļ˛', next: { e: { value: 'âļ´', next: null }, E: { value: 'âļ´', next: null } } }, + I: { value: 'âļ˛', next: { e: { value: 'âļ´', next: null }, E: { value: 'âļ´', next: null } } }, + a: { value: 'âļŗ', next: null }, + A: { value: 'âļŗ', next: null }, + o: { value: 'âļļ', next: null }, + O: { value: 'âļļ', next: null }, + }, + }, + }, + }, + y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + O: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + }, + }, + Y: { + value: 'ይ', + next: { + e: { value: 'የ', next: null }, + E: { value: 'የ', next: null }, + u: { value: 'ዩ', next: null }, + U: { value: 'ዩ', next: null }, + i: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + I: { value: 'á‹Ē', next: { e: { value: 'á‹Ŧ', next: null }, E: { value: 'á‹Ŧ', next: null } } }, + a: { value: 'á‹Ģ', next: null }, + A: { value: 'á‹Ģ', next: null }, + o: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + O: { value: 'ዮ', next: { a: { value: 'ዯ', next: null }, A: { value: 'ዯ', next: null } } }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + e: { value: 'ደ', next: null }, + E: { value: 'ደ', next: null }, + u: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + U: { value: 'ዱ', next: { a: { value: 'ዷ', next: null }, A: { value: 'ዷ', next: null } } }, + i: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + I: { value: 'ዲ', next: { e: { value: 'ዴ', next: null }, E: { value: 'ዴ', next: null } } }, + a: { value: 'á‹ŗ', next: null }, + A: { value: 'á‹ŗ', next: null }, + o: { value: 'á‹ļ', next: { a: { value: 'âļŒ', next: null }, A: { value: 'âļŒ', next: null } } }, + O: { value: 'á‹ļ', next: { a: { value: 'âļŒ', next: null }, A: { value: 'âļŒ', next: null } } }, + }, + }, + D: { + value: 'á‹Ŋ', + next: { + e: { value: 'ዸ', next: null }, + E: { value: 'ዸ', next: null }, + u: { value: 'ዹ', next: { a: { value: 'á‹ŋ', next: null }, A: { value: 'á‹ŋ', next: null } } }, + U: { value: 'ዹ', next: { a: { value: 'á‹ŋ', next: null }, A: { value: 'á‹ŋ', next: null } } }, + i: { value: 'á‹ē', next: { e: { value: 'á‹ŧ', next: null }, E: { value: 'á‹ŧ', next: null } } }, + I: { value: 'á‹ē', next: { e: { value: 'á‹ŧ', next: null }, E: { value: 'á‹ŧ', next: null } } }, + a: { value: 'á‹ģ', next: null }, + A: { value: 'á‹ģ', next: null }, + o: { value: 'ዾ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ዾ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + j: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + O: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + }, + }, + J: { + value: 'ጅ', + next: { + e: { value: 'ጀ', next: null }, + E: { value: 'ጀ', next: null }, + u: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + U: { value: 'ጁ', next: { a: { value: 'ጇ', next: null }, A: { value: 'ጇ', next: null } } }, + i: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + I: { value: 'ጂ', next: { e: { value: 'ጄ', next: null }, E: { value: 'ጄ', next: null } } }, + a: { value: 'ጃ', next: null }, + A: { value: 'ጃ', next: null }, + o: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + O: { value: 'ጆ', next: { a: { value: 'âļŽ', next: null }, A: { value: 'âļŽ', next: null } } }, + }, + }, + g: { + value: 'ግ', + next: { + e: { value: 'ገ', next: null }, + E: { value: 'ገ', next: null }, + u: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + U: { + value: 'ጉ', + next: { + e: { value: 'ጐ', next: null }, + E: { value: 'ጐ', next: null }, + u: { value: 'ጕ', next: null }, + U: { value: 'ጕ', next: null }, + i: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + I: { value: 'ጒ', next: { e: { value: 'ጔ', next: null }, E: { value: 'ጔ', next: null } } }, + a: { value: 'ጓ', next: null }, + A: { value: 'ጓ', next: null }, + }, + }, + i: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + I: { value: 'ጊ', next: { e: { value: 'ጌ', next: null }, E: { value: 'ጌ', next: null } } }, + a: { value: 'ጋ', next: null }, + A: { value: 'ጋ', next: null }, + o: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + O: { value: 'ጎ', next: { a: { value: 'ጏ', next: null }, A: { value: 'ጏ', next: null } } }, + Y: { + value: 'ⷝ', + next: { + e: { value: '⡘', next: null }, + E: { value: '⡘', next: null }, + u: { value: 'ⷙ', next: null }, + U: { value: 'ⷙ', next: null }, + i: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + I: { value: 'ⷚ', next: { e: { value: 'ⷜ', next: null }, E: { value: 'ⷜ', next: null } } }, + a: { value: 'ⷛ', next: null }, + A: { value: 'ⷛ', next: null }, + o: { value: 'ⷞ', next: null }, + O: { value: 'ⷞ', next: null }, + }, + }, + }, + }, + G: { + value: 'ጝ', + next: { + e: { value: 'ጘ', next: null }, + E: { value: 'ጘ', next: null }, + u: { + value: 'ጙ', + next: { + e: { value: 'âļ“', next: null }, + E: { value: 'âļ“', next: null }, + u: { value: 'âļ–', next: null }, + U: { value: 'âļ–', next: null }, + i: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + I: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + a: { value: 'ጟ', next: null }, + A: { value: 'ጟ', next: null }, + }, + }, + U: { + value: 'ጙ', + next: { + e: { value: 'âļ“', next: null }, + E: { value: 'âļ“', next: null }, + u: { value: 'âļ–', next: null }, + U: { value: 'âļ–', next: null }, + i: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + I: { value: 'âļ”', next: { e: { value: 'âļ•', next: null }, E: { value: 'âļ•', next: null } } }, + a: { value: 'ጟ', next: null }, + A: { value: 'ጟ', next: null }, + }, + }, + i: { value: 'ጚ', next: { e: { value: 'ጜ', next: null }, E: { value: 'ጜ', next: null } } }, + I: { value: 'ጚ', next: { e: { value: 'ጜ', next: null }, E: { value: 'ጜ', next: null } } }, + a: { value: 'ጛ', next: null }, + A: { value: 'ጛ', next: null }, + o: { value: 'ጞ', next: null }, + O: { value: 'ጞ', next: null }, + }, + }, + T: { + value: 'áŒĨ', + next: { + e: { value: 'ጠ', next: null }, + E: { value: 'ጠ', next: null }, + u: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + U: { value: 'ጡ', next: { a: { value: 'ጧ', next: null }, A: { value: 'ጧ', next: null } } }, + i: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + I: { value: 'áŒĸ', next: { e: { value: 'ጤ', next: null }, E: { value: 'ጤ', next: null } } }, + a: { value: 'áŒŖ', next: null }, + A: { value: 'áŒŖ', next: null }, + o: { value: 'áŒĻ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'áŒĻ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + }, + }, + C: { + value: 'ጭ', + next: { + e: { value: 'ጨ', next: null }, + E: { value: 'ጨ', next: null }, + u: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + U: { value: 'ጩ', next: { a: { value: 'ጯ', next: null }, A: { value: 'ጯ', next: null } } }, + i: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + I: { value: 'áŒĒ', next: { e: { value: 'áŒŦ', next: null }, E: { value: 'áŒŦ', next: null } } }, + a: { value: 'áŒĢ', next: null }, + A: { value: 'áŒĢ', next: null }, + o: { value: 'ጮ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + O: { value: 'ጮ', next: { a: { value: 'âļ', next: null }, A: { value: 'âļ', next: null } } }, + C: { + value: 'âļŊ', + next: { + e: { value: 'âļ¸', next: null }, + E: { value: 'âļ¸', next: null }, + u: { value: 'âļš', next: null }, + U: { value: 'âļš', next: null }, + i: { value: 'âļē', next: { e: { value: 'âļŧ', next: null }, E: { value: 'âļŧ', next: null } } }, + I: { value: 'âļē', next: { e: { value: 'âļŧ', next: null }, E: { value: 'âļŧ', next: null } } }, + a: { value: 'âļģ', next: null }, + A: { value: 'âļģ', next: null }, + o: { value: 'âļž', next: null }, + O: { value: 'âļž', next: null }, + }, + }, + }, + }, + P: { + value: 'áŒĩ', + next: { + e: { value: 'ጰ', next: null }, + E: { value: 'ጰ', next: null }, + u: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + U: { value: 'ጱ', next: { a: { value: 'ጷ', next: null }, A: { value: 'ጷ', next: null } } }, + i: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + I: { value: 'ጲ', next: { e: { value: 'ጴ', next: null }, E: { value: 'ጴ', next: null } } }, + a: { value: 'áŒŗ', next: null }, + A: { value: 'áŒŗ', next: null }, + o: { value: 'áŒļ', next: { a: { value: 'âļ‘', next: null }, A: { value: 'âļ‘', next: null } } }, + O: { value: 'áŒļ', next: { a: { value: 'âļ‘', next: null }, A: { value: 'âļ‘', next: null } } }, + }, + }, + S: { + value: 'áŒŊ', + next: { + e: { value: 'ጸ', next: null }, + E: { value: 'ጸ', next: null }, + u: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + U: { value: 'ጹ', next: { a: { value: 'áŒŋ', next: null }, A: { value: 'áŒŋ', next: null } } }, + i: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + I: { value: 'áŒē', next: { e: { value: 'áŒŧ', next: null }, E: { value: 'áŒŧ', next: null } } }, + a: { value: 'áŒģ', next: null }, + A: { value: 'áŒģ', next: null }, + o: { value: 'ጾ', next: null }, + O: { value: 'ጾ', next: null }, + S: { + value: 'ፅ', + next: { + e: { value: 'ፀ', next: null }, + E: { value: 'ፀ', next: null }, + u: { value: 'ፁ', next: null }, + U: { value: 'ፁ', next: null }, + i: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + I: { value: 'ፂ', next: { e: { value: 'ፄ', next: null }, E: { value: 'ፄ', next: null } } }, + a: { value: 'ፃ', next: null }, + A: { value: 'ፃ', next: null }, + o: { value: 'ፆ', next: { a: { value: 'ፇ', next: null }, A: { value: 'ፇ', next: null } } }, + O: { value: 'ፆ', next: { a: { value: 'ፇ', next: null }, A: { value: 'ፇ', next: null } } }, + }, + }, + }, + }, + f: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + U: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + Y: { value: 'ፚ', next: null }, + }, + }, + F: { + value: 'ፍ', + next: { + e: { value: 'ፈ', next: null }, + E: { value: 'ፈ', next: null }, + u: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + U: { + value: 'ፉ', + next: { + e: { value: 'ᎈ', next: null }, + E: { value: 'ᎈ', next: null }, + u: { value: 'ᎉ', next: null }, + U: { value: 'ᎉ', next: null }, + i: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + I: { value: 'ᎋ', next: { e: { value: 'ᎊ', next: null }, E: { value: 'ᎊ', next: null } } }, + a: { value: 'ፏ', next: null }, + A: { value: 'ፏ', next: null }, + }, + }, + i: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + I: { value: 'ፊ', next: { e: { value: 'ፌ', next: null }, E: { value: 'ፌ', next: null } } }, + a: { value: 'ፋ', next: null }, + A: { value: 'ፋ', next: null }, + o: { value: 'ፎ', next: null }, + O: { value: 'ፎ', next: null }, + Y: { value: 'ፚ', next: null }, + }, + }, + p: { + value: 'ፕ', + next: { + e: { value: 'ፐ', next: null }, + E: { value: 'ፐ', next: null }, + u: { + value: 'ፑ', + next: { + e: { value: 'ᎌ', next: null }, + E: { value: 'ᎌ', next: null }, + u: { value: 'ᎍ', next: null }, + U: { value: 'ᎍ', next: null }, + i: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + I: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + a: { value: 'ፗ', next: null }, + A: { value: 'ፗ', next: null }, + }, + }, + U: { + value: 'ፑ', + next: { + e: { value: 'ᎌ', next: null }, + E: { value: 'ᎌ', next: null }, + u: { value: 'ᎍ', next: null }, + U: { value: 'ᎍ', next: null }, + i: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + I: { value: 'ᎏ', next: { e: { value: 'ᎎ', next: null }, E: { value: 'ᎎ', next: null } } }, + a: { value: 'ፗ', next: null }, + A: { value: 'ፗ', next: null }, + }, + }, + i: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + I: { value: 'ፒ', next: { e: { value: 'ፔ', next: null }, E: { value: 'ፔ', next: null } } }, + a: { value: 'ፓ', next: null }, + A: { value: 'ፓ', next: null }, + o: { value: 'ፖ', next: { a: { value: 'âļ’', next: null }, A: { value: 'âļ’', next: null } } }, + O: { value: 'ፖ', next: { a: { value: 'âļ’', next: null }, A: { value: 'âļ’', next: null } } }, + }, + }, + e: { value: 'áŠĨ', next: null }, + i: { value: 'áŠĸ', next: { e: { value: 'ኤ', next: null }, E: { value: 'ኤ', next: null } } }, + o: { value: 'áŠĻ', next: null }, + u: { value: 'ኡ', next: null }, + E: { value: 'ዕ', next: null }, + I: { value: 'ዒ', next: { e: { value: 'ዔ', next: null }, E: { value: 'ዔ', next: null } } }, + O: { value: 'ዖ', next: null }, + U: { value: 'ዑ', next: null }, + ':': { + value: '፡', + next: { ':': { value: 'áĸ', next: { ':': { value: ':', next: null } } }, ',': { value: 'áĨ', next: null } }, + }, + ',': { value: 'áŖ', next: { ',': { value: 'áĨ', next: { ',': { value: ',', next: null } } } } }, + ';': { value: '፤', next: { ';': { value: ';', next: null } } }, + '<': { value: '‹', next: { '<': { value: 'ÂĢ', next: { '<': { value: '<', next: null } } } } }, + '>': { value: 'â€ē', next: { '>': { value: 'Âģ', next: { '>': { value: '>', next: null } } } } }, + }, +}; +export default layout; diff --git a/packages/web/src/KeywriteWeb.ts b/packages/web/src/KeywriteWeb.ts new file mode 100644 index 0000000..b75df2a --- /dev/null +++ b/packages/web/src/KeywriteWeb.ts @@ -0,0 +1,79 @@ +import { Keywrite, KeyboardLayout } from '@keywrite/core'; + +export type Input = HTMLInputElement | HTMLTextAreaElement; +export class KeywriteWeb extends Keywrite { + public on: boolean; + private input: Input; + + constructor(input: Input, layouts: Record, on = true) { + super(layouts); + + this.on = on; + this.input = input; + this.addEvents(); + } + private addEvents(): void { + this.input.addEventListener('keydown' as const, (e) => { + //eslint-disable-next-line + this.keyDownEventHandler(e as any); + }); + this.input.addEventListener('focusout', () => { + this.focusOutEventHandler(); + }); + } + private changeInputValue(newValue: string): void { + const e = new window.Event('input', { bubbles: true }); + this.setNativeValue(this.input, newValue); + this.input.dispatchEvent(e); + } + private writeSymbol(symbol: string, replace: boolean): void { + const index = this.input.selectionStart || 0; + if (replace) { + this.changeInputValue(this.replaceStringAt(this.input.value, symbol, index)); + this.input.setSelectionRange(index, index); + } else { + this.changeInputValue(this.insertStringAt(this.input.value, symbol, index)); + this.input.setSelectionRange(index + 1, index + 1); + } + } + private resolveSymbol(event: KeyboardEvent): boolean { + if (event.ctrlKey || event.altKey || event.metaKey) { + return false; + } else { + event.preventDefault(); + return true; + } + } + private keyDownEventHandler(event: KeyboardEvent): void { + if (this.on) { + if (this.keyBlacklist.indexOf(event.key) === -1) { + const char = event.key; + const { symbol, replace } = this.write(char); + if (this.resolveSymbol(event)) { + this.writeSymbol(symbol, replace); + } + } else { + this.resetScope(); + } + } + } + private focusOutEventHandler(): void { + if (this.on) { + this.resetScope(); + } + } + private insertStringAt(string: string, stringToInsert: string, index: number): string { + if (index > 0) { + return string.substring(0, index) + stringToInsert + string.substr(index); + } + return stringToInsert + string; + } + private replaceStringAt(string: string, stringToInsert: string, index: number): string { + return string.substring(0, index - 1) + stringToInsert + string.substr(index); + } + private setNativeValue(element: Input, value: string): void { + const prototype = Object.getPrototypeOf(element); + const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value')?.set; + prototypeValueSetter?.call(element, value); + } +} diff --git a/packages/web/src/index.ts b/packages/web/src/index.ts new file mode 100644 index 0000000..bbfb9fa --- /dev/null +++ b/packages/web/src/index.ts @@ -0,0 +1 @@ +export * from './KeywriteWeb'; diff --git a/packages/web/tests/KeywriteWeb.spec.ts b/packages/web/tests/KeywriteWeb.spec.ts new file mode 100644 index 0000000..6741010 --- /dev/null +++ b/packages/web/tests/KeywriteWeb.spec.ts @@ -0,0 +1,121 @@ +/** + * @jest-environment jsdom + */ +import { KeywriteWeb } from '../src'; +import Layout from './layout'; +import { simulateTyping, simulateFocusout } from './utils'; +describe('KeywriteWeb.ts', () => { + let input: any = null; + let textarea: any = null; + const KeyboardLayouts = { layout1: Layout }; + beforeEach(() => { + document.body.innerHTML = ` + + + `; + // set reference to the input elements + input = document.querySelector('input') as HTMLInputElement; + textarea = document.querySelector('textarea') as HTMLTextAreaElement; + }); + it('should work with HTMLInputElement & HTMLTextAreaElement', () => { + const newInstance1 = new KeywriteWeb(input, KeyboardLayouts); + const newInstance2 = new KeywriteWeb(textarea, KeyboardLayouts); + expect(newInstance1).toBeDefined(); + expect(newInstance2).toBeDefined(); + }); + it('should be able to turn on after initialization', () => { + const inputInstance = new KeywriteWeb(input, KeyboardLayouts, false); + const textareaInstance = new KeywriteWeb(textarea, KeyboardLayouts, false); + const text = 'selam selam'; + const expectedText = 'ሰላም ሰላም'; + // input + inputInstance.on = true; + expect(inputInstance.on).toEqual(true); + simulateTyping(input, text); + expect(input.value).toEqual(expectedText); + // textarea + textareaInstance.on = true; + expect(textareaInstance.on).toEqual(true); + simulateTyping(textarea, text); + expect(input.value).toEqual(expectedText); + }); + it('should be able to turn off after initialization', () => { + const inputInstance = new KeywriteWeb(input, KeyboardLayouts, true); + const textareaInstance = new KeywriteWeb(textarea, KeyboardLayouts, true); + const text = 'selam'; + const expectedText = 'selam'; + // input + inputInstance.on = false; + expect(inputInstance.on).toEqual(false); + simulateTyping(input, text); + simulateFocusout(input); + expect(input.value).toEqual(expectedText); + // textarea + textareaInstance.on = false; + expect(textareaInstance.on).toEqual(false); + simulateTyping(textarea, text); + simulateFocusout(textarea); + expect(input.value).toEqual(expectedText); + }); + it('should not write character if (CTRL) key had been triggered ', () => { + new KeywriteWeb(input, KeyboardLayouts, true); + new KeywriteWeb(textarea, KeyboardLayouts, true); + + const text = ['s', 'e', 'l', 'Control', 'a', 'm']; + const expectedText = 'ሰልም'; + // input + simulateTyping(input, text); + expect(input.value).toEqual(expectedText); + // textarea + simulateTyping(textarea, text); + expect(input.value).toEqual(expectedText); + }); + + it('should not write character if (ALT) key had been triggered ', () => { + new KeywriteWeb(input, KeyboardLayouts, true); + new KeywriteWeb(textarea, KeyboardLayouts, true); + + const text = ['s', 'e', 'l', 'Alt', 'a', 'm']; + const expectedText = 'ሰልም'; + // input + simulateTyping(input, text); + expect(input.value).toEqual(expectedText); + // textarea + simulateTyping(textarea, text); + expect(input.value).toEqual(expectedText); + }); + + it('should not write character if (META) key had been triggered ', () => { + new KeywriteWeb(input, KeyboardLayouts, true); + new KeywriteWeb(textarea, KeyboardLayouts, true); + + const text = ['s', 'e', 'l', 'Meta', 'a', 'm']; + const expectedText = 'ሰልም'; + // input + simulateTyping(input, text); + expect(input.value).toEqual(expectedText); + // textarea + simulateTyping(textarea, text); + expect(input.value).toEqual(expectedText); + }); + + it('should reset scope if input looses focus', () => { + new KeywriteWeb(input, KeyboardLayouts, true); + new KeywriteWeb(textarea, KeyboardLayouts, true); + const texts = [ + ['s', 'e', 'l'], + ['a', 'm'], + ]; + const expectedText = 'ሰልአም'; + for (const text of texts) { + // input + simulateTyping(input, text); + simulateFocusout(input); + // textarea + simulateTyping(textarea, text); + simulateFocusout(textarea); + } + expect(input.value).toEqual(expectedText); + expect(input.value).toEqual(expectedText); + }); +}); diff --git a/packages/web/tests/layout.ts b/packages/web/tests/layout.ts new file mode 100644 index 0000000..f78d928 --- /dev/null +++ b/packages/web/tests/layout.ts @@ -0,0 +1,1848 @@ +export default { + a: { + value: 'አ', + next: null, + }, + e: { + value: 'áŠĨ', + next: { + e: { + value: 'ኤ', + next: null, + }, + }, + }, + i: { + value: 'áŠĸ', + next: { + e: { + value: 'ኤ', + next: null, + }, + }, + }, + o: { + value: 'áŠĻ', + next: null, + }, + u: { + value: 'ኡ', + next: null, + }, + w: { + value: 'ው', + next: { + a: { + value: 'ዋ', + next: null, + }, + i: { + value: 'ዊ', + next: { + e: { + value: 'ዌ', + next: null, + }, + }, + }, + e: { + value: 'ወ', + next: { + e: { + value: 'ዌ', + next: null, + }, + }, + }, + u: { + value: 'ዉ', + next: null, + }, + o: { + value: 'ዎ', + next: null, + }, + }, + }, + s: { + value: 'áˆĩ', + next: { + a: { + value: 'áˆŗ', + next: null, + }, + e: { + value: 'ሰ', + next: { + e: { + value: 'ሴ', + next: null, + }, + }, + }, + i: { + value: 'ሲ', + next: { + e: { + value: 'ሴ', + next: null, + }, + }, + }, + h: { + value: 'áˆŊ', + next: { + a: { + value: 'áˆģ', + next: null, + }, + e: { + value: 'ሸ', + next: { + e: { + value: 'áˆŧ', + next: null, + }, + }, + }, + i: { + value: 'áˆē', + next: { + e: { + value: 'áˆŧ', + next: null, + }, + }, + }, + u: { + value: 'ሚ', + next: { + a: { + value: 'áˆŋ', + next: null, + }, + }, + }, + o: { + value: 'ሞ', + next: null, + }, + }, + }, + z: { + value: 'áˆĨ', + next: { + a: { + value: 'áˆŖ', + next: null, + }, + e: { + value: 'ሠ', + next: { + e: { + value: 'ሤ', + next: null, + }, + }, + }, + i: { + value: 'áˆĸ', + next: { + e: { + value: 'ሤ', + next: null, + }, + }, + }, + u: { + value: 'ሥ', + next: { + a: { + value: 'ሧ', + next: null, + }, + }, + }, + o: { + value: 'áˆĻ', + next: null, + }, + }, + }, + u: { + value: 'ሹ', + next: { + a: { + value: 'ሡ', + next: null, + }, + }, + }, + o: { + value: 'áˆļ', + next: null, + }, + }, + }, + v: { + value: 'ቭ', + next: { + a: { + value: 'á‰Ģ', + next: null, + }, + e: { + value: 'ቨ', + next: { + e: { + value: 'á‰Ŧ', + next: null, + }, + }, + }, + i: { + value: 'á‰Ē', + next: { + e: { + value: 'á‰Ŧ', + next: null, + }, + }, + }, + u: { + value: 'ቩ', + next: { + a: { + value: 'ቯ', + next: null, + }, + }, + }, + o: { + value: 'ቮ', + next: null, + }, + }, + }, + y: { + value: 'ይ', + next: { + a: { + value: 'á‹Ģ', + next: null, + }, + e: { + value: 'የ', + next: { + e: { + value: 'á‹Ŧ', + next: null, + }, + }, + }, + i: { + value: 'á‹Ē', + next: { + e: { + value: 'á‹Ŧ', + next: null, + }, + }, + }, + u: { + value: 'ዩ', + next: null, + }, + o: { + value: 'ዮ', + next: { + a: { + value: 'ዯ', + next: null, + }, + }, + }, + }, + }, + x: { + value: 'ኅ', + next: { + a: { + value: 'ኃ', + next: null, + }, + e: { + value: 'ኀ', + next: { + e: { + value: 'ኄ', + next: null, + }, + }, + }, + w: { + value: 'ኍ', + next: { + a: { + value: 'ኋ', + next: null, + }, + e: { + value: 'ኈ', + next: { + e: { + value: 'ኌ', + next: null, + }, + }, + }, + i: { + value: 'ኊ', + next: { + e: { + value: 'ኌ', + next: null, + }, + }, + }, + }, + }, + i: { + value: 'ኂ', + next: { + e: { + value: 'ኄ', + next: null, + }, + }, + }, + u: { + value: 'ኁ', + next: { + a: { + value: 'ኋ', + next: null, + }, + e: { + value: 'ኈ', + next: { + e: { + value: 'ኌ', + next: null, + }, + }, + }, + i: { + value: 'ኊ', + next: { + e: { + value: 'ኌ', + next: null, + }, + }, + }, + }, + }, + o: { + value: 'ኆ', + next: { + a: { + value: 'ኇ', + next: null, + }, + }, + }, + }, + }, + r: { + value: 'ር', + next: { + a: { + value: 'áˆĢ', + next: null, + }, + e: { + value: 'ረ', + next: { + e: { + value: 'áˆŦ', + next: null, + }, + }, + }, + y: { + value: null, + next: { + a: { + value: 'ፘ', + next: null, + }, + }, + }, + i: { + value: 'áˆĒ', + next: { + e: { + value: 'áˆŦ', + next: null, + }, + }, + }, + u: { + value: 'ሊ', + next: { + a: { + value: 'ሯ', + next: null, + }, + }, + }, + o: { + value: 'ሎ', + next: null, + }, + }, + }, + q: { + value: 'ቅ', + next: { + a: { + value: 'ቃ', + next: null, + }, + e: { + value: 'ቀ', + next: { + e: { + value: 'ቄ', + next: null, + }, + }, + }, + w: { + value: 'ቍ', + next: { + a: { + value: 'ቋ', + next: null, + }, + e: { + value: 'ቈ', + next: { + e: { + value: 'ቌ', + next: null, + }, + }, + }, + i: { + value: 'ቊ', + next: { + e: { + value: 'ቌ', + next: null, + }, + }, + }, + }, + }, + i: { + value: 'ቂ', + next: { + e: { + value: 'ቄ', + next: null, + }, + }, + }, + h: { + value: 'ቕ', + next: { + a: { + value: 'ቓ', + next: null, + }, + e: { + value: 'ቐ', + next: { + e: { + value: 'ቔ', + next: null, + }, + }, + }, + w: { + value: 'ቝ', + next: { + a: { + value: 'ቛ', + next: null, + }, + e: { + value: 'ቘ', + next: { + e: { + value: 'ቜ', + next: null, + }, + }, + }, + i: { + value: 'ቚ', + next: { + e: { + value: 'ቜ', + next: null, + }, + }, + }, + }, + }, + i: { + value: 'ቒ', + next: { + e: { + value: 'ቔ', + next: null, + }, + }, + }, + u: { + value: 'ቑ', + next: { + a: { + value: 'ቛ', + next: null, + }, + e: { + value: 'ቘ', + next: { + e: { + value: 'ቜ', + next: null, + }, + }, + }, + i: { + value: 'ቚ', + next: { + e: { + value: 'ቜ', + next: null, + }, + }, + }, + }, + }, + o: { + value: 'ቖ', + next: null, + }, + }, + }, + u: { + value: 'ቁ', + next: { + a: { + value: 'ቋ', + next: null, + }, + e: { + value: 'ቈ', + next: { + e: { + value: 'ቌ', + next: null, + }, + }, + }, + i: { + value: 'ቊ', + next: { + e: { + value: 'ቌ', + next: null, + }, + }, + }, + }, + }, + o: { + value: 'ቆ', + next: { + a: { + value: 'ቇ', + next: null, + }, + }, + }, + }, + }, + c: { + value: 'á‰Ŋ', + next: { + a: { + value: 'á‰ģ', + next: null, + }, + e: { + value: 'ቸ', + next: { + e: { + value: 'á‰ŧ', + next: null, + }, + }, + }, + i: { + value: 'á‰ē', + next: { + e: { + value: 'á‰ŧ', + next: null, + }, + }, + }, + h: { + value: 'ጭ', + next: { + a: { + value: 'áŒĢ', + next: null, + }, + e: { + value: 'ጨ', + next: { + e: { + value: 'áŒŦ', + next: null, + }, + }, + }, + i: { + value: 'áŒĒ', + next: { + e: { + value: 'áŒŦ', + next: null, + }, + }, + }, + u: { + value: 'ጩ', + next: { + a: { + value: 'ጯ', + next: null, + }, + }, + }, + o: { + value: 'ጮ', + next: null, + }, + }, + }, + u: { + value: 'ቹ', + next: { + a: { + value: 'á‰ŋ', + next: null, + }, + }, + }, + o: { + value: 'ቾ', + next: null, + }, + }, + }, + b: { + value: 'á‰Ĩ', + next: { + a: { + value: 'á‰Ŗ', + next: null, + }, + e: { + value: 'በ', + next: { + e: { + value: 'ቤ', + next: null, + }, + }, + }, + i: { + value: 'á‰ĸ', + next: { + e: { + value: 'ቤ', + next: null, + }, + }, + }, + u: { + value: 'ቡ', + next: { + a: { + value: 'ቧ', + next: null, + }, + }, + }, + o: { + value: 'á‰Ļ', + next: null, + }, + }, + }, + d: { + value: 'á‹ĩ', + next: { + a: { + value: 'á‹ŗ', + next: null, + }, + e: { + value: 'ደ', + next: { + e: { + value: 'ዴ', + next: null, + }, + }, + }, + d: { + value: 'á‹Ŋ', + next: { + a: { + value: 'á‹ģ', + next: null, + }, + e: { + value: 'ዸ', + next: { + e: { + value: 'á‹ŧ', + next: null, + }, + }, + }, + + i: { + value: 'á‹ē', + next: { + e: { + value: 'á‹ŧ', + next: null, + }, + }, + }, + u: { + value: 'ዹ', + next: { + a: { + value: 'á‹ŋ', + next: null, + }, + }, + }, + o: { + value: 'ዾ', + next: null, + }, + }, + }, + i: { + value: 'ዲ', + next: { + e: { + value: 'ዴ', + next: null, + }, + }, + }, + u: { + value: 'ዱ', + next: { + a: { + value: 'ዷ', + next: null, + }, + }, + }, + o: { + value: 'á‹ļ', + next: null, + }, + }, + }, + g: { + value: 'ግ', + next: { + a: { + value: 'ጋ', + next: null, + }, + e: { + value: 'ገ', + next: { + e: { + value: 'ጌ', + next: null, + }, + }, + }, + w: { + value: 'ጕ', + next: { + a: { + value: 'ጓ', + next: null, + }, + e: { + value: 'ጐ', + next: { + e: { + value: 'ጔ', + next: null, + }, + }, + }, + i: { + value: 'ጒ', + next: { + e: { + value: 'ጔ', + next: null, + }, + }, + }, + }, + }, + g: { + value: 'ጝ', + next: { + a: { + value: 'ጛ', + next: null, + }, + e: { + value: 'ጘ', + next: { + e: { + value: 'ጜ', + next: null, + }, + }, + }, + i: { + value: 'ጚ', + next: { + e: { + value: 'ጜ', + next: null, + }, + }, + }, + u: { + value: 'ጙ', + next: { + a: { + value: 'ጟ', + next: null, + }, + }, + }, + o: { + value: 'ጞ', + next: null, + }, + }, + }, + i: { + value: 'ጊ', + next: { + e: { + value: 'ጌ', + next: null, + }, + }, + }, + u: { + value: 'ጉ', + next: { + a: { + value: 'ጓ', + next: null, + }, + e: { + value: 'ጐ', + next: { + e: { + value: 'ጔ', + next: null, + }, + }, + }, + i: { + value: 'ጒ', + next: { + e: { + value: 'ጔ', + next: null, + }, + }, + }, + }, + }, + o: { + value: 'ጎ', + next: { + a: { + value: 'ጏ', + next: null, + }, + }, + }, + }, + }, + f: { + value: 'ፍ', + next: { + a: { + value: 'ፋ', + next: null, + }, + e: { + value: 'ፈ', + next: { + e: { + value: 'ፌ', + next: null, + }, + }, + }, + y: { + value: null, + next: { + a: { + value: 'ፚ', + next: null, + }, + }, + }, + i: { + value: 'ፊ', + next: { + e: { + value: 'ፌ', + next: null, + }, + }, + }, + u: { + value: 'ፉ', + next: { + a: { + value: 'ፏ', + next: null, + }, + }, + }, + o: { + value: 'ፎ', + next: null, + }, + }, + }, + h: { + value: 'ህ', + next: { + a: { + value: 'ሃ', + next: null, + }, + e: { + value: 'ሀ', + next: { + e: { + value: 'ሄ', + next: null, + }, + }, + }, + i: { + value: 'ሂ', + next: { + e: { + value: 'ሄ', + next: null, + }, + }, + }, + h: { + value: 'ሕ', + next: { + a: { + value: 'ሓ', + next: null, + }, + e: { + value: 'ሐ', + next: { + e: { + value: 'ሔ', + next: null, + }, + }, + }, + i: { + value: 'ሒ', + next: { + e: { + value: 'ሔ', + next: null, + }, + }, + }, + u: { + value: 'ሑ', + next: { + a: { + value: 'ሗ', + next: null, + }, + }, + }, + o: { + value: 'ሖ', + next: null, + }, + }, + }, + u: { + value: 'ሁ', + next: null, + }, + o: { + value: 'ሆ', + next: null, + }, + }, + }, + k: { + value: 'ክ', + next: { + a: { + value: 'áŠĢ', + next: null, + }, + e: { + value: 'ከ', + next: { + e: { + value: 'áŠŦ', + next: null, + }, + }, + }, + w: { + value: 'áŠĩ', + next: { + a: { + value: 'áŠŗ', + next: null, + }, + e: { + value: 'ኰ', + next: { + e: { + value: 'ኴ', + next: null, + }, + }, + }, + i: { + value: 'ኲ', + next: { + e: { + value: 'ኴ', + next: null, + }, + }, + }, + }, + }, + x: { + value: 'áŠŊ', + next: { + a: { + value: 'áŠģ', + next: null, + }, + e: { + value: 'ኸ', + next: { + e: { + value: 'áŠŧ', + next: null, + }, + }, + }, + w: { + value: 'ዅ', + next: { + a: { + value: 'ዃ', + next: null, + }, + e: { + value: 'ዀ', + next: { + e: { + value: 'ዄ', + next: null, + }, + }, + }, + i: { + value: 'ዂ', + next: { + e: { + value: 'ዄ', + next: null, + }, + }, + }, + }, + }, + i: { + value: 'áŠē', + next: { + e: { + value: 'áŠŧ', + next: null, + }, + }, + }, + u: { + value: 'ኹ', + next: null, + }, + o: { + value: 'ኾ', + next: null, + }, + }, + }, + i: { + value: 'áŠĒ', + next: { + e: { + value: 'áŠŦ', + next: null, + }, + }, + }, + u: { + value: 'ኩ', + next: { + a: { + value: 'áŠŗ', + next: null, + }, + e: { + value: 'ኰ', + next: { + e: { + value: 'ኴ', + next: null, + }, + }, + }, + i: { + value: 'ኲ', + next: { + e: { + value: 'ኴ', + next: null, + }, + }, + }, + }, + }, + o: { + value: 'ኮ', + next: { + a: { + value: 'ኯ', + next: null, + }, + }, + }, + }, + }, + j: { + value: 'ጅ', + next: { + a: { + value: 'ጃ', + next: null, + }, + e: { + value: 'ጀ', + next: { + e: { + value: 'ጄ', + next: null, + }, + }, + }, + i: { + value: 'ጂ', + next: { + e: { + value: 'ጄ', + next: null, + }, + }, + }, + u: { + value: 'ጁ', + next: { + a: { + value: 'ጇ', + next: null, + }, + }, + }, + o: { + value: 'ጆ', + next: null, + }, + }, + }, + m: { + value: 'ም', + next: { + a: { + value: 'ማ', + next: null, + }, + e: { + value: 'መ', + next: { + e: { + value: 'ሜ', + next: null, + }, + }, + }, + y: { + value: null, + next: { + a: { + value: 'ፙ', + next: null, + }, + }, + }, + i: { + value: 'ሚ', + next: { + e: { + value: 'ሜ', + next: null, + }, + }, + }, + u: { + value: 'ሙ', + next: { + a: { + value: 'ሟ', + next: null, + }, + }, + }, + o: { + value: 'ሞ', + next: null, + }, + }, + }, + l: { + value: 'ል', + next: { + a: { + value: 'ላ', + next: null, + }, + e: { + value: 'ለ', + next: { + e: { + value: 'ሌ', + next: null, + }, + }, + }, + i: { + value: 'ሊ', + next: { + e: { + value: 'ሌ', + next: null, + }, + }, + }, + u: { + value: 'ሉ', + next: { + a: { + value: 'ሏ', + next: null, + }, + }, + }, + o: { + value: 'ሎ', + next: null, + }, + }, + }, + n: { + value: 'ን', + next: { + a: { + value: 'ና', + next: null, + }, + e: { + value: 'ነ', + next: { + e: { + value: 'ኔ', + next: null, + }, + }, + }, + y: { + value: 'ኝ', + next: { + a: { + value: 'ኛ', + next: null, + }, + e: { + value: 'ኘ', + next: { + e: { + value: 'ኜ', + next: null, + }, + }, + }, + i: { + value: 'ኚ', + next: { + e: { + value: 'ኜ', + next: null, + }, + }, + }, + u: { + value: 'ኙ', + next: { + a: { + value: 'ኟ', + next: null, + }, + }, + }, + o: { + value: 'ኞ', + next: null, + }, + }, + }, + i: { + value: 'ኒ', + next: { + e: { + value: 'ኔ', + next: null, + }, + }, + }, + u: { + value: 'ኑ', + next: { + a: { + value: 'ኗ', + next: null, + }, + }, + }, + o: { + value: 'ኖ', + next: null, + }, + }, + }, + '1': { + value: 'ፊ', + next: { + '0': { + value: '፲', + next: { + '0': { + value: 'áģ', + next: { + '0': { + value: '፲áģ', + next: { + '0': { + value: 'áģáģ', + next: { + '0': { + value: '፲áģáģ', + next: null, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + p: { + value: 'ፕ', + next: { + a: { + value: 'ፓ', + next: null, + }, + e: { + value: 'ፐ', + next: { + e: { + value: 'ፔ', + next: null, + }, + }, + }, + i: { + value: 'ፒ', + next: { + e: { + value: 'ፔ', + next: null, + }, + }, + }, + h: { + value: 'áŒĩ', + next: { + a: { + value: 'áŒŗ', + next: null, + }, + e: { + value: 'ጰ', + next: { + e: { + value: 'ጴ', + next: null, + }, + }, + }, + i: { + value: 'ጲ', + next: { + e: { + value: 'ጴ', + next: null, + }, + }, + }, + u: { + value: 'ጱ', + next: { + a: { + value: 'ጷ', + next: null, + }, + }, + }, + o: { + value: 'áŒļ', + next: null, + }, + }, + }, + u: { + value: 'ፑ', + next: { + a: { + value: 'ፗ', + next: null, + }, + }, + }, + o: { + value: 'ፖ', + next: null, + }, + }, + }, + '3': { + value: 'áĢ', + next: { + '0': { + value: '፴', + next: null, + }, + }, + }, + '2': { + value: 'áĒ', + next: { + '0': { + value: 'áŗ', + next: null, + }, + }, + }, + '5': { + value: '፭', + next: { + '0': { + value: 'áļ', + next: null, + }, + }, + }, + '4': { + value: 'áŦ', + next: { + '0': { + value: 'áĩ', + next: null, + }, + }, + }, + '7': { + value: '፯', + next: { + '0': { + value: '፸', + next: null, + }, + }, + }, + '6': { + value: 'ፎ', + next: { + '0': { + value: '፷', + next: null, + }, + }, + }, + '9': { + value: '፱', + next: { + '0': { + value: 'áē', + next: null, + }, + }, + }, + '8': { + value: '፰', + next: { + '0': { + value: 'ፚ', + next: null, + }, + }, + }, + z: { + value: 'ዝ', + next: { + a: { + value: 'ዛ', + next: null, + }, + e: { + value: 'ዘ', + next: { + e: { + value: 'ዜ', + next: null, + }, + }, + }, + i: { + value: 'ዚ', + next: { + e: { + value: 'ዜ', + next: null, + }, + }, + }, + h: { + value: 'á‹Ĩ', + next: { + a: { + value: 'á‹Ŗ', + next: null, + }, + e: { + value: 'ዠ', + next: { + e: { + value: 'ዤ', + next: null, + }, + }, + }, + i: { + value: 'á‹ĸ', + next: { + e: { + value: 'ዤ', + next: null, + }, + }, + }, + u: { + value: 'ዡ', + next: { + a: { + value: 'ዧ', + next: null, + }, + }, + }, + o: { + value: 'á‹Ļ', + next: null, + }, + }, + }, + u: { + value: 'ዙ', + next: { + a: { + value: 'ዟ', + next: null, + }, + }, + }, + o: { + value: 'ዞ', + next: null, + }, + }, + }, + t: { + value: 'á‰ĩ', + next: { + a: { + value: 'á‰ŗ', + next: null, + }, + e: { + value: 'ተ', + next: { + e: { + value: 'ቴ', + next: null, + }, + }, + }, + s: { + value: 'áŒŊ', + next: { + a: { + value: 'áŒģ', + next: null, + }, + e: { + value: 'ጸ', + next: { + e: { + value: 'áŒŧ', + next: null, + }, + }, + }, + i: { + value: 'áŒē', + next: { + e: { + value: 'áŒŧ', + next: null, + }, + }, + }, + u: { + value: 'ጹ', + next: { + a: { + value: 'áŒŋ', + next: null, + }, + }, + }, + o: { + value: 'ጾ', + next: null, + }, + }, + }, + i: { + value: 'ቲ', + next: { + e: { + value: 'ቴ', + next: null, + }, + }, + }, + h: { + value: 'áŒĨ', + next: { + a: { + value: 'áŒŖ', + next: null, + }, + e: { + value: 'ጠ', + next: { + e: { + value: 'ጤ', + next: null, + }, + }, + }, + i: { + value: 'áŒĸ', + next: { + e: { + value: 'ጤ', + next: null, + }, + }, + }, + u: { + value: 'ጡ', + next: { + a: { + value: 'ጧ', + next: null, + }, + }, + }, + o: { + value: 'áŒĻ', + next: null, + }, + }, + }, + z: { + value: 'ፅ', + next: { + a: { + value: 'ፃ', + next: null, + }, + e: { + value: 'ፀ', + next: { + e: { + value: 'ፄ', + next: null, + }, + }, + }, + i: { + value: 'ፂ', + next: { + e: { + value: 'ፄ', + next: null, + }, + }, + }, + u: { + value: 'ፁ', + next: { + a: { + value: 'ፇ', + next: null, + }, + }, + }, + w: { + value: 'ፆ', + next: { + a: { + value: 'ፇ', + next: null, + }, + }, + }, + }, + }, + u: { + value: 'ቱ', + next: { + a: { + value: 'ቷ', + next: null, + }, + }, + }, + o: { + value: 'á‰ļ', + next: null, + }, + }, + }, + ':': { + value: '፡', + next: { + ':': { + value: 'áĸ', + next: null, + }, + }, + }, + '.': { + value: 'áĸ', + next: null, + }, + ';': { + value: '፤', + next: null, + }, + ',': { + value: 'áŖ', + next: null, + }, + '/': { + value: '፨', + next: null, + }, +}; diff --git a/packages/web/tests/utils.ts b/packages/web/tests/utils.ts new file mode 100644 index 0000000..6683818 --- /dev/null +++ b/packages/web/tests/utils.ts @@ -0,0 +1,45 @@ +export const simulateTyping = (element: HTMLInputElement | HTMLTextAreaElement, text: string | string[]) => { + const list = Array.isArray(text) ? text.entries() : text.split('').entries(); + for (const [i, char] of list) { + const lastIndex = i - 1; + element.dispatchEvent( + new window.KeyboardEvent('keydown', { + key: char, + code: char, + bubbles: true, + ctrlKey: lastIndex > -1 && text[lastIndex] === 'Control', + shiftKey: lastIndex > -1 && text[lastIndex] === 'Shift', + altKey: lastIndex > -1 && text[lastIndex] === 'Alt', + metaKey: lastIndex > -1 && text[lastIndex] === 'Meta', + }), + ); + element.dispatchEvent( + new window.KeyboardEvent('keyup', { + key: char, + code: char, + bubbles: true, + }), + ); + element.dispatchEvent( + new window.KeyboardEvent('keypress', { + key: char, + code: char, + bubbles: true, + }), + ); + element.dispatchEvent( + new window.Event('input', { + bubbles: true, + }), + ); + element.setAttribute('value', element.value + char); + } +}; + +export const simulateFocusout = (element: HTMLInputElement | HTMLTextAreaElement) => { + element.dispatchEvent( + new window.Event('focusout', { + bubbles: true, + }), + ); +}; diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json new file mode 100644 index 0000000..97a3201 --- /dev/null +++ b/packages/web/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.build.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "composite": true, + "downlevelIteration": true, + "module": "es6", + "moduleResolution": "node" + }, + "include": ["src/**/*"], + "references": [ + { + "path": "../core" + } + ] +} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..a707a8b --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es5", + "outDir": "./dist", + "module": "commonjs", + "moduleResolution": "node", + "jsx": "react", + "strict": true, + "declaration": true, + "declarationMap": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9c6b3c1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "jsx": "react", + "baseUrl": "./packages", + "paths": { + "@keywrite/core/*": ["core/src/*"], + "@keywrite/web/*": ["web/src/*"], + "@keywrite/ethiopic-layouts/*": ["ethiopic-layouts/src/*"], + "@keywrite/layout-generator/*": ["layout-generator/src/*"] + } + }, + "files": [], + "references": [ + { + "path": "packages/core" + }, + { + "path": "packages/ethiopic-layouts" + }, + { + "path": "packages/layout-generator" + }, + { + "path": "packages/web" + } + ] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..76c75e9 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9008 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.10", "@babel/generator@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== + dependencies: + "@babel/types" "^7.12.11" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/types" "^7.12.11" + +"@babel/helper-get-function-arity@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" + integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-member-expression-to-functions@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-module-imports@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== + dependencies: + "@babel/types" "^7.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" + integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-replace-supers@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" + integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.7" + "@babel/helper-optimise-call-expression" "^7.12.10" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.11" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== + dependencies: + "@babel/types" "^7.12.11" + +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" + integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/runtime@^7.10.4", "@babel/runtime@^7.11.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" + integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== + dependencies: + "@babel/code-frame" "^7.12.11" + "@babel/generator" "^7.12.11" + "@babel/helper-function-name" "^7.12.11" + "@babel/helper-split-export-declaration" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/types" "^7.12.12" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@changesets/apply-release-plan@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-4.2.0.tgz#f1005815f27c3238f66507e90c6ae14d8fc62b41" + integrity sha512-/vt6UwgQldhOw93Gb8llI5OuYGlJt2+U45AfcXsoxzl8gZzCmChGm3vUaQJYbmtL8TbL8OOVXHRIKJJidMNPKw== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/config" "^1.5.0" + "@changesets/get-version-range-type" "^0.3.2" + "@changesets/git" "^1.0.5" + "@changesets/types" "^3.3.0" + "@manypkg/get-packages" "^1.0.1" + detect-indent "^6.0.0" + fs-extra "^7.0.1" + lodash.startcase "^4.4.0" + outdent "^0.5.0" + prettier "^1.19.1" + resolve-from "^5.0.0" + semver "^5.4.1" + +"@changesets/assemble-release-plan@^4.0.0", "@changesets/assemble-release-plan@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-4.1.0.tgz#091e5e768dfe51835937e71d1ebaca1c9d6de55b" + integrity sha512-dMqe2L5Pn4UGTW89kOuuCuZD3pQFZj1Sxv92ZW4S98sXGsxcb2PdW+PeHbQ7tawkCYCOvzhXxAlN4OdF2DlDKQ== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.2.0" + "@changesets/types" "^3.3.0" + "@manypkg/get-packages" "^1.0.1" + semver "^5.4.1" + +"@changesets/changelog-github@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@changesets/changelog-github/-/changelog-github-0.2.8.tgz#b17569205e5e8da65cc9a3ceb16e2c78f0463236" + integrity sha512-XO/6J/EvndQ+SOhRLvWUun5DLnuTmukpjhtFbHbQSNzzGvRUIyQ2//v6R5sgcazDGLoJixP7MaATEhYeppf+Cg== + dependencies: + "@changesets/get-github-info" "^0.4.5" + "@changesets/types" "^3.0.0" + dotenv "^8.1.0" + +"@changesets/cli@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.14.1.tgz#ef6ba9f69e4dd5f6cde4220e032200e3039a52f8" + integrity sha512-ydU2ZUP/s7nHQmz8TrliT+kE2dJUpZYKh8MBHrkV6suchCBhT4DmoP4VDF9M4215r18iPbMpE1TjskzXGXB8eQ== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/apply-release-plan" "^4.2.0" + "@changesets/assemble-release-plan" "^4.1.0" + "@changesets/config" "^1.5.0" + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.2.0" + "@changesets/get-release-plan" "^2.0.1" + "@changesets/git" "^1.1.0" + "@changesets/logger" "^0.0.5" + "@changesets/pre" "^1.0.4" + "@changesets/read" "^0.4.6" + "@changesets/types" "^3.3.0" + "@changesets/write" "^0.1.3" + "@manypkg/get-packages" "^1.0.1" + "@types/semver" "^6.0.0" + boxen "^1.3.0" + chalk "^2.1.0" + enquirer "^2.3.0" + external-editor "^3.1.0" + fs-extra "^7.0.1" + human-id "^1.0.2" + is-ci "^2.0.0" + meow "^6.0.0" + outdent "^0.5.0" + p-limit "^2.2.0" + preferred-pm "^3.0.0" + semver "^5.4.1" + spawndamnit "^2.0.0" + term-size "^2.1.0" + tty-table "^2.8.10" + +"@changesets/config@^1.2.0", "@changesets/config@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@changesets/config/-/config-1.5.0.tgz#6d58b01e45916318d3f39e9cde86a5d69dc58ed8" + integrity sha512-Bl9nLVYcwFCpd9jpzcOsExZk1NuTYX20D2YWHCdS1xll3W0yOdSUlWLUCCfugN1l3+yTR6iDW6q9o6vpCevWvA== + dependencies: + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.2.0" + "@changesets/logger" "^0.0.5" + "@changesets/types" "^3.3.0" + "@manypkg/get-packages" "^1.0.1" + fs-extra "^7.0.1" + micromatch "^4.0.2" + +"@changesets/errors@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@changesets/errors/-/errors-0.1.4.tgz#f79851746c43679a66b383fdff4c012f480f480d" + integrity sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q== + dependencies: + extendable-error "^0.1.5" + +"@changesets/get-dependents-graph@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.0.tgz#6986927a5fec60bc6fcc76f966efae2ac30c05ed" + integrity sha512-96NInEKpEZH8KvmXyh42PynXVAdq3kQ9VjAeswHtJ3umUCeTF42b/KVXaov+5P1RNnaUVtRuEwzs4syGuowDTw== + dependencies: + "@changesets/types" "^3.3.0" + "@manypkg/get-packages" "^1.0.1" + chalk "^2.1.0" + fs-extra "^7.0.1" + semver "^5.4.1" + +"@changesets/get-github-info@^0.4.5": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@changesets/get-github-info/-/get-github-info-0.4.5.tgz#53d46e03f7794cd439e6530dce1029cc149cd313" + integrity sha512-tknjYi9ti3AIbGrDHfeJ1bBbXJi/FdV6AWH0oA4JFrCRe2IoczAJo2MeU+3banQx5TlL1fOTeUOM1YAK+sJB2g== + dependencies: + dataloader "^1.4.0" + node-fetch "^2.5.0" + +"@changesets/get-release-plan@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-2.0.1.tgz#b95d8f1a3cc719ff4b42b9b9aae72458d8787c13" + integrity sha512-+x5N9/Iaka+c0Kq7+3JsboMNyffKYlWPmdm+VeafDcMwJFhBDkxm84qaCJ93ydmnzQOTig6gYVqw0k8BbHExyQ== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/assemble-release-plan" "^4.0.0" + "@changesets/config" "^1.2.0" + "@changesets/pre" "^1.0.4" + "@changesets/read" "^0.4.6" + "@changesets/types" "^3.1.0" + "@manypkg/get-packages" "^1.0.1" + +"@changesets/get-version-range-type@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67" + integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== + +"@changesets/git@^1.0.5", "@changesets/git@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@changesets/git/-/git-1.1.0.tgz#ecaa8058ac87b450c09da0e74b68e6854cd0742c" + integrity sha512-f/2rQynT+JiAL/V0V/GQdXhLkcb86ELg3UwH3fQO4wVdfUbE9NHIHq9ohJdH1Ymh0Lv48F/b38aWZ5v2sKiF3w== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/errors" "^0.1.4" + "@changesets/types" "^3.1.1" + "@manypkg/get-packages" "^1.0.1" + is-subdir "^1.1.1" + spawndamnit "^2.0.0" + +"@changesets/logger@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@changesets/logger/-/logger-0.0.5.tgz#68305dd5a643e336be16a2369cb17cdd8ed37d4c" + integrity sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw== + dependencies: + chalk "^2.1.0" + +"@changesets/parse@^0.3.6": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.3.7.tgz#1368136e2b83d5cff11b4d383a3032723530db99" + integrity sha512-8yqKulslq/7V2VRBsJqPgjnZMoehYqhJm5lEOXJPZ2rcuSdyj8+p/2vq2vRDBJT2m0rP+C9G8DujsGYQIFZezw== + dependencies: + "@changesets/types" "^3.0.0" + js-yaml "^3.13.1" + +"@changesets/pre@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-1.0.5.tgz#91e5e3b31b4a85ce37de72f6511a786f62f29b51" + integrity sha512-p43aAQY3aijhDnBLCriPao5YArlRjD4mSHRJq9PsBhljVLWqQQXcn6seSd77d+bD1tATLhB8tQ2eYoxMtMydXQ== + dependencies: + "@babel/runtime" "^7.4.4" + "@changesets/errors" "^0.1.4" + "@changesets/types" "^3.0.0" + "@manypkg/get-packages" "^1.0.1" + fs-extra "^7.0.1" + +"@changesets/read@^0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.4.6.tgz#1c03e709a870a070fc95490ffa696297d23458f7" + integrity sha512-rOd8dsF/Lgyy2SYlDalb3Ts/meDI2AcKPXYhSXIW3k6+ZLlj6Pt+nmgV5Ut8euyH7loibklNTDemfvMffF4xig== + dependencies: + "@babel/runtime" "^7.4.4" + "@changesets/git" "^1.0.5" + "@changesets/logger" "^0.0.5" + "@changesets/parse" "^0.3.6" + "@changesets/types" "^3.0.0" + chalk "^2.1.0" + fs-extra "^7.0.1" + p-filter "^2.1.0" + +"@changesets/types@^3.0.0", "@changesets/types@^3.1.0", "@changesets/types@^3.1.1", "@changesets/types@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@changesets/types/-/types-3.3.0.tgz#04cd8184b2d2da760667bd89bf9b930938dbd96e" + integrity sha512-rJamRo+OD/MQekImfIk07JZwYSB18iU6fYL8xOg0gfAiTh1a1+OlR1fPIxm55I7RsWw812is2YcPPwXdIewrhA== + +"@changesets/write@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.1.3.tgz#00ae575af50274773d7493e77fb96838a08ad8ad" + integrity sha512-q79rbwlVmTNKP9O6XxcMDj81CEOn/kQHbTFdRleW0tFUv98S1EyEAE9vLPPzO6WnQipHnaozxB1zMhHy0aQn8Q== + dependencies: + "@babel/runtime" "^7.4.4" + "@changesets/types" "^3.0.0" + fs-extra "^7.0.1" + human-id "^1.0.2" + prettier "^1.18.2" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@commitlint/cli@11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-11.0.0.tgz#698199bc52afed50aa28169237758fa14a67b5d3" + integrity sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g== + dependencies: + "@babel/runtime" "^7.11.2" + "@commitlint/format" "^11.0.0" + "@commitlint/lint" "^11.0.0" + "@commitlint/load" "^11.0.0" + "@commitlint/read" "^11.0.0" + chalk "4.1.0" + core-js "^3.6.1" + get-stdin "8.0.0" + lodash "^4.17.19" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^15.1.0" + +"@commitlint/config-conventional@11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-11.0.0.tgz#3fa300a1b639273946de3c3f15e1cda518333422" + integrity sha512-SNDRsb5gLuDd2PL83yCOQX6pE7gevC79UPFx+GLbLfw6jGnnbO9/tlL76MLD8MOViqGbo7ZicjChO9Gn+7tHhA== + dependencies: + conventional-changelog-conventionalcommits "^4.3.1" + +"@commitlint/ensure@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-11.0.0.tgz#3e796b968ab5b72bc6f8a6040076406306c987fb" + integrity sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug== + dependencies: + "@commitlint/types" "^11.0.0" + lodash "^4.17.19" + +"@commitlint/execute-rule@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz#3ed60ab7a33019e58d90e2d891b75d7df77b4b4d" + integrity sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ== + +"@commitlint/format@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-11.0.0.tgz#ac47b0b9ca46540c0082c721b290794e67bdc51b" + integrity sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg== + dependencies: + "@commitlint/types" "^11.0.0" + chalk "^4.0.0" + +"@commitlint/is-ignored@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-11.0.0.tgz#7b803eda56276dbe7fec51eb1510676198468f39" + integrity sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg== + dependencies: + "@commitlint/types" "^11.0.0" + semver "7.3.2" + +"@commitlint/lint@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-11.0.0.tgz#01e062cd1b0e7c3d756aa2c246462e0b6a3348a4" + integrity sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ== + dependencies: + "@commitlint/is-ignored" "^11.0.0" + "@commitlint/parse" "^11.0.0" + "@commitlint/rules" "^11.0.0" + "@commitlint/types" "^11.0.0" + +"@commitlint/load@>6.1.1", "@commitlint/load@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-11.0.0.tgz#f736562f0ffa7e773f8808fea93319042ee18211" + integrity sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg== + dependencies: + "@commitlint/execute-rule" "^11.0.0" + "@commitlint/resolve-extends" "^11.0.0" + "@commitlint/types" "^11.0.0" + chalk "4.1.0" + cosmiconfig "^7.0.0" + lodash "^4.17.19" + resolve-from "^5.0.0" + +"@commitlint/message@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-11.0.0.tgz#83554c3cbbc884fd07b473593bc3e94bcaa3ee05" + integrity sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA== + +"@commitlint/parse@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-11.0.0.tgz#d18b08cf67c35d02115207d7009306a2e8e7c901" + integrity sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A== + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-commits-parser "^3.0.0" + +"@commitlint/read@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-11.0.0.tgz#f24240548c63587bba139fa5a364cab926077016" + integrity sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g== + dependencies: + "@commitlint/top-level" "^11.0.0" + fs-extra "^9.0.0" + git-raw-commits "^2.0.0" + +"@commitlint/resolve-extends@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz#158ecbe27d4a2a51d426111a01478e216fbb1036" + integrity sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw== + dependencies: + import-fresh "^3.0.0" + lodash "^4.17.19" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-11.0.0.tgz#bdb310cc6fc55c9f8d7d917a22b69055c535c375" + integrity sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA== + dependencies: + "@commitlint/ensure" "^11.0.0" + "@commitlint/message" "^11.0.0" + "@commitlint/to-lines" "^11.0.0" + "@commitlint/types" "^11.0.0" + +"@commitlint/to-lines@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-11.0.0.tgz#86dea151c10eea41e39ea96fa4de07839258a7fe" + integrity sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw== + +"@commitlint/top-level@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-11.0.0.tgz#bb2d1b6e5ed3be56874633b59e1f7de118c32783" + integrity sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe" + integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ== + +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.20" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@evocateur/libnpmaccess@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" + integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + +"@evocateur/libnpmpublish@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" + integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + semver "^5.5.1" + ssri "^6.0.1" + +"@evocateur/npm-registry-fetch@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" + integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.1.2" + +"@evocateur/pacote@^9.6.3": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" + integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + bluebird "^3.5.3" + cacache "^12.0.3" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.5.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.4.4" + npm-pick-manifest "^3.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.3" + safe-buffer "^5.2.0" + semver "^5.7.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + 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" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@lerna/add@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" + integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/bootstrap" "3.21.0" + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + npm-package-arg "^6.1.0" + p-map "^2.1.0" + semver "^6.2.0" + +"@lerna/bootstrap@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6" + integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/has-npm-version" "3.16.5" + "@lerna/npm-install" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/symlink-binary" "3.17.0" + "@lerna/symlink-dependencies" "3.17.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + get-port "^4.2.0" + multimatch "^3.0.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + read-package-tree "^5.1.6" + semver "^6.2.0" + +"@lerna/changed@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b" + integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/check-working-tree@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz#b4f8ae61bb4523561dfb9f8f8d874dd46bb44baa" + integrity sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ== + dependencies: + "@lerna/collect-uncommitted" "3.16.5" + "@lerna/describe-ref" "3.16.5" + "@lerna/validation-error" "3.13.0" + +"@lerna/child-process@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.16.5.tgz#38fa3c18064aa4ac0754ad80114776a7b36a69b2" + integrity sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg== + dependencies: + chalk "^2.3.1" + execa "^1.0.0" + strong-log-transformer "^2.0.0" + +"@lerna/clean@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d" + integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + +"@lerna/cli@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-3.18.5.tgz#c90c461542fcd35b6d5b015a290fb0dbfb41d242" + integrity sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA== + dependencies: + "@lerna/global-options" "3.13.0" + dedent "^0.7.0" + npmlog "^4.1.2" + yargs "^14.2.2" + +"@lerna/collect-uncommitted@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz#a494d61aac31cdc7aec4bbe52c96550274132e63" + integrity sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg== + dependencies: + "@lerna/child-process" "3.16.5" + chalk "^2.3.1" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/collect-updates@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1" + integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/describe-ref" "3.16.5" + minimatch "^3.0.4" + npmlog "^4.1.2" + slash "^2.0.0" + +"@lerna/command@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7" + integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/project" "3.21.0" + "@lerna/validation-error" "3.13.0" + "@lerna/write-log-file" "3.13.0" + clone-deep "^4.0.1" + dedent "^0.7.0" + execa "^1.0.0" + is-ci "^2.0.0" + npmlog "^4.1.2" + +"@lerna/conventional-commits@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09" + integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA== + dependencies: + "@lerna/validation-error" "3.13.0" + conventional-changelog-angular "^5.0.3" + conventional-changelog-core "^3.1.6" + conventional-recommended-bump "^5.0.0" + fs-extra "^8.1.0" + get-stream "^4.0.0" + lodash.template "^4.5.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + semver "^6.2.0" + +"@lerna/create-symlink@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" + integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== + dependencies: + "@zkochan/cmd-shim" "^3.1.0" + fs-extra "^8.1.0" + npmlog "^4.1.2" + +"@lerna/create@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619" + integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + camelcase "^5.0.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + globby "^9.2.0" + init-package-json "^1.10.3" + npm-package-arg "^6.1.0" + p-reduce "^1.0.0" + pify "^4.0.1" + semver "^6.2.0" + slash "^2.0.0" + validate-npm-package-license "^3.0.3" + validate-npm-package-name "^3.0.0" + whatwg-url "^7.0.0" + +"@lerna/describe-ref@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.16.5.tgz#a338c25aaed837d3dc70b8a72c447c5c66346ac0" + integrity sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + +"@lerna/diff@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d" + integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/validation-error" "3.13.0" + npmlog "^4.1.2" + +"@lerna/exec@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26" + integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/filter-options@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b" + integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/filter-packages" "3.18.0" + dedent "^0.7.0" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/filter-packages@3.18.0": + version "3.18.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.18.0.tgz#6a7a376d285208db03a82958cfb8172e179b4e70" + integrity sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ== + dependencies: + "@lerna/validation-error" "3.13.0" + multimatch "^3.0.0" + npmlog "^4.1.2" + +"@lerna/get-npm-exec-opts@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5" + integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw== + dependencies: + npmlog "^4.1.2" + +"@lerna/get-packed@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" + integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== + dependencies: + fs-extra "^8.1.0" + ssri "^6.0.1" + tar "^4.4.8" + +"@lerna/github-client@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95" + integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg== + dependencies: + "@lerna/child-process" "3.16.5" + "@octokit/plugin-enterprise-rest" "^6.0.1" + "@octokit/rest" "^16.28.4" + git-url-parse "^11.1.2" + npmlog "^4.1.2" + +"@lerna/gitlab-client@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" + integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== + dependencies: + node-fetch "^2.5.0" + npmlog "^4.1.2" + whatwg-url "^7.0.0" + +"@lerna/global-options@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" + integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== + +"@lerna/has-npm-version@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz#ab83956f211d8923ea6afe9b979b38cc73b15326" + integrity sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q== + dependencies: + "@lerna/child-process" "3.16.5" + semver "^6.2.0" + +"@lerna/import@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2" + integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + p-map-series "^1.0.0" + +"@lerna/info@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f" + integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/output" "3.13.0" + envinfo "^7.3.1" + +"@lerna/init@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c" + integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + write-json-file "^3.2.0" + +"@lerna/link@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b" + integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/package-graph" "3.18.5" + "@lerna/symlink-dependencies" "3.17.0" + p-map "^2.1.0" + slash "^2.0.0" + +"@lerna/list@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2" + integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/listable@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.18.5.tgz#e82798405b5ed8fc51843c8ef1e7a0e497388a1a" + integrity sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg== + dependencies: + "@lerna/query-graph" "3.18.5" + chalk "^2.3.1" + columnify "^1.5.4" + +"@lerna/log-packed@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" + integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== + dependencies: + byte-size "^5.0.1" + columnify "^1.5.4" + has-unicode "^2.0.1" + npmlog "^4.1.2" + +"@lerna/npm-conf@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" + integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== + dependencies: + config-chain "^1.1.11" + pify "^4.0.1" + +"@lerna/npm-dist-tag@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz#9ef9abb7c104077b31f6fab22cc73b314d54ac55" + integrity sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + "@lerna/otplease" "3.18.5" + figgy-pudding "^3.5.1" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + +"@lerna/npm-install@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.16.5.tgz#d6bfdc16f81285da66515ae47924d6e278d637d3" + integrity sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + signal-exit "^3.0.2" + write-pkg "^3.1.0" + +"@lerna/npm-publish@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.18.5.tgz#240e4039959fd9816b49c5b07421e11b5cb000af" + integrity sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg== + dependencies: + "@evocateur/libnpmpublish" "^1.2.2" + "@lerna/otplease" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + read-package-json "^2.0.13" + +"@lerna/npm-run-script@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz#9c2ec82453a26c0b46edc0bb7c15816c821f5c15" + integrity sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + npmlog "^4.1.2" + +"@lerna/otplease@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.18.5.tgz#b77b8e760b40abad9f7658d988f3ea77d4fd0231" + integrity sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog== + dependencies: + "@lerna/prompt" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/output@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989" + integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg== + dependencies: + npmlog "^4.1.2" + +"@lerna/pack-directory@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" + integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== + dependencies: + "@lerna/get-packed" "3.16.0" + "@lerna/package" "3.16.0" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + npm-packlist "^1.4.4" + npmlog "^4.1.2" + tar "^4.4.10" + temp-write "^3.4.0" + +"@lerna/package-graph@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b" + integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA== + dependencies: + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/validation-error" "3.13.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + semver "^6.2.0" + +"@lerna/package@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" + integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== + dependencies: + load-json-file "^5.3.0" + npm-package-arg "^6.1.0" + write-pkg "^3.1.0" + +"@lerna/prerelease-id-from-version@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" + integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== + dependencies: + semver "^6.2.0" + +"@lerna/profiler@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051" + integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg== + dependencies: + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npmlog "^4.1.2" + upath "^1.2.0" + +"@lerna/project@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" + integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== + dependencies: + "@lerna/package" "3.16.0" + "@lerna/validation-error" "3.13.0" + cosmiconfig "^5.1.0" + dedent "^0.7.0" + dot-prop "^4.2.0" + glob-parent "^5.0.0" + globby "^9.2.0" + load-json-file "^5.3.0" + npmlog "^4.1.2" + p-map "^2.1.0" + resolve-from "^4.0.0" + write-json-file "^3.2.0" + +"@lerna/prompt@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-3.18.5.tgz#628cd545f225887d060491ab95df899cfc5218a1" + integrity sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ== + dependencies: + inquirer "^6.2.0" + npmlog "^4.1.2" + +"@lerna/publish@3.22.1": + version "3.22.1" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.22.1.tgz#b4f7ce3fba1e9afb28be4a1f3d88222269ba9519" + integrity sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw== + dependencies: + "@evocateur/libnpmaccess" "^3.1.2" + "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/pacote" "^9.6.3" + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/describe-ref" "3.16.5" + "@lerna/log-packed" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/npm-dist-tag" "3.18.5" + "@lerna/npm-publish" "3.18.5" + "@lerna/otplease" "3.18.5" + "@lerna/output" "3.13.0" + "@lerna/pack-directory" "3.16.4" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + "@lerna/version" "3.22.1" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-pipe "^1.2.0" + semver "^6.2.0" + +"@lerna/pulse-till-done@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110" + integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA== + dependencies: + npmlog "^4.1.2" + +"@lerna/query-graph@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.18.5.tgz#df4830bb5155273003bf35e8dda1c32d0927bd86" + integrity sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA== + dependencies: + "@lerna/package-graph" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/resolve-symlink@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" + integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== + dependencies: + fs-extra "^8.1.0" + npmlog "^4.1.2" + read-cmd-shim "^1.0.1" + +"@lerna/rimraf-dir@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz#04316ab5ffd2909657aaf388ea502cb8c2f20a09" + integrity sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + path-exists "^3.0.0" + rimraf "^2.6.2" + +"@lerna/run-lifecycle@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" + integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== + dependencies: + "@lerna/npm-conf" "3.16.0" + figgy-pudding "^3.5.1" + npm-lifecycle "^3.1.2" + npmlog "^4.1.2" + +"@lerna/run-topologically@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.18.5.tgz#3cd639da20e967d7672cb88db0f756b92f2fdfc3" + integrity sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg== + dependencies: + "@lerna/query-graph" "3.18.5" + figgy-pudding "^3.5.1" + p-queue "^4.0.0" + +"@lerna/run@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891" + integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-run-script" "3.16.5" + "@lerna/output" "3.13.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/timer" "3.13.0" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/symlink-binary@3.17.0": + version "3.17.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz#8f8031b309863814883d3f009877f82e38aef45a" + integrity sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/package" "3.16.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + +"@lerna/symlink-dependencies@3.17.0": + version "3.17.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz#48d6360e985865a0e56cd8b51b308a526308784a" + integrity sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/resolve-symlink" "3.16.0" + "@lerna/symlink-binary" "3.17.0" + fs-extra "^8.1.0" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + +"@lerna/timer@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781" + integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw== + +"@lerna/validation-error@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" + integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== + dependencies: + npmlog "^4.1.2" + +"@lerna/version@3.22.1": + version "3.22.1" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.22.1.tgz#9805a9247a47ee62d6b81bd9fa5fb728b24b59e2" + integrity sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g== + dependencies: + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/conventional-commits" "3.22.0" + "@lerna/github-client" "3.22.0" + "@lerna/gitlab-client" "3.15.0" + "@lerna/output" "3.13.0" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + chalk "^2.3.1" + dedent "^0.7.0" + load-json-file "^5.3.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-map "^2.1.0" + p-pipe "^1.2.0" + p-reduce "^1.0.0" + p-waterfall "^1.0.0" + semver "^6.2.0" + slash "^2.0.0" + temp-write "^3.4.0" + write-json-file "^3.2.0" + +"@lerna/write-log-file@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26" + integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A== + dependencies: + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +"@manypkg/find-root@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f" + integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== + dependencies: + "@babel/runtime" "^7.5.5" + "@types/node" "^12.7.1" + find-up "^4.1.0" + fs-extra "^8.1.0" + +"@manypkg/get-packages@^1.0.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.1.tgz#7c7e72d0061ab2e61d2ce4da58ce91290a60ac8d" + integrity sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw== + dependencies: + "@babel/runtime" "^7.5.5" + "@manypkg/find-root" "^1.1.0" + fs-extra "^8.1.0" + globby "^11.0.0" + read-yaml-file "^1.1.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@octokit/auth-token@^2.4.0": + version "2.4.5" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz#568ccfb8cb46f36441fac094ce34f7a875b197f3" + integrity sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/endpoint@^6.0.1": + version "6.0.11" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.11.tgz#082adc2aebca6dcefa1fb383f5efb3ed081949d1" + integrity sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-3.4.1.tgz#317f78cede7f387046e6bad2041e01ddf9607e96" + integrity sha512-7Sjm3UwEAM11f+ck9+qlyEfgl8hCk5sSZBU2qcWY8+8ibowjqcwxhhtvY0/pjHPF8mcvmedFpGmmIYs2qM9/+Q== + +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" + integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== + dependencies: + "@octokit/types" "^2.0.1" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz#70a62be213e1edc04bb8897ee48c311482f9700d" + integrity sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ== + +"@octokit/plugin-rest-endpoint-methods@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" + integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== + dependencies: + "@octokit/types" "^2.0.1" + deprecation "^2.3.1" + +"@octokit/request-error@^1.0.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" + integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== + dependencies: + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143" + integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.2.0": + version "5.4.14" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.14.tgz#ec5f96f78333bb2af390afa5ff66f114b063bc96" + integrity sha512-VkmtacOIQp9daSnBmDI92xNIeLuSRDOIuplp/CJomkvzt7M18NXgG044Cx/LFKLgjKt9T2tZR6AtJayba9GTSA== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^6.7.1" + deprecation "^2.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^16.28.4": + version "16.43.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" + integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/plugin-paginate-rest" "^1.1.1" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "2.4.0" + "@octokit/request" "^5.2.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" + btoa-lite "^1.0.0" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.16.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^6.0.3", "@octokit/types@^6.7.1": + version "6.7.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.7.1.tgz#01fdc5bbc67bf10ab0ca0aa2461d19ff9dd67fb7" + integrity sha512-OzRXbizUfixgzTjlSZQj+yuo0J9vAMOLtpsIm3JjQUsI3CcLXZnVaxRIWtYD+iwHznnvG9fJlPHM6SRp77fUcw== + dependencies: + "@octokit/openapi-types" "^3.4.1" + "@types/node" ">= 8" + +"@sinonjs/commons@^1.7.0": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0" + integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== + dependencies: + "@babel/types" "^7.3.0" + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" + integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@26.x": + version "26.0.20" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.20.tgz#cd2f2702ecf69e86b586e1f5223a60e454056307" + integrity sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@^7.0.3": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/minimist@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" + integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== + +"@types/node@*", "@types/node@>= 8": + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== + +"@types/node@^12.7.1": + version "12.19.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.16.tgz#15753af35cbef636182d8d8ca55b37c8583cecb3" + integrity sha512-7xHmXm/QJ7cbK2laF+YYD7gb5MggHIIQwqyjin3bpEGiSuvScMQ5JZZXPvRipi1MwckTQbJZROMns/JxdnIL1Q== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.0.0": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.6.tgz#f4b1efa784e8db479cdb8b14403e2144b1e9ff03" + integrity sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA== + +"@types/semver@^6.0.0": + version "6.2.2" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.2.tgz#5c27df09ca39e3c9beb4fae6b95f4d71426df0a9" + integrity sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ== + +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.2.tgz#47a15803cfab89580b96933d348c2721f3d2f6fe" + integrity sha512-uMGfG7GFYK/nYutK/iqYJv6K/Xuog/vrRRZX9aEP4Zv1jsYXuvFUMDFLhUnc8WFv3D2R5QhNQL3VYKmvLS5zsQ== + dependencies: + "@typescript-eslint/experimental-utils" "4.14.2" + "@typescript-eslint/scope-manager" "4.14.2" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + lodash "^4.17.15" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz#9df35049d1d36b6cbaba534d703648b9e1f05cbb" + integrity sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.14.2" + "@typescript-eslint/types" "4.14.2" + "@typescript-eslint/typescript-estree" "4.14.2" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.14.2.tgz#31e216e4baab678a56e539f9db9862e2542c98d0" + integrity sha512-ipqSP6EuUsMu3E10EZIApOJgWSpcNXeKZaFeNKQyzqxnQl8eQCbV+TSNsl+s2GViX2d18m1rq3CWgnpOxDPgHg== + dependencies: + "@typescript-eslint/scope-manager" "4.14.2" + "@typescript-eslint/types" "4.14.2" + "@typescript-eslint/typescript-estree" "4.14.2" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz#64cbc9ca64b60069aae0c060b2bf81163243b266" + integrity sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg== + dependencies: + "@typescript-eslint/types" "4.14.2" + "@typescript-eslint/visitor-keys" "4.14.2" + +"@typescript-eslint/types@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.14.2.tgz#d96da62be22dc9dc6a06647f3633815350fb3174" + integrity sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q== + +"@typescript-eslint/typescript-estree@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz#9c5ebd8cae4d7b014f890acd81e8e17f309c9df9" + integrity sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg== + dependencies: + "@typescript-eslint/types" "4.14.2" + "@typescript-eslint/visitor-keys" "4.14.2" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz#997cbe2cb0690e1f384a833f64794e98727c70c6" + integrity sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w== + dependencies: + "@typescript-eslint/types" "4.14.2" + eslint-visitor-keys "^2.0.0" + +"@zkochan/cmd-shim@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" + integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== + dependencies: + is-windows "^1.0.0" + mkdirp-promise "^5.0.1" + mz "^2.5.0" + +JSONStream@^1.0.4, JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +ajv@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.4.tgz#827e5f5ae32f5e5c1637db61f253a112229b5e2f" + integrity sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + +array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + 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" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +before-after-hook@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.1.tgz#99ae36992b5cfab4a83f6bee74ab27835f28f405" + integrity sha512-5ekuQOvO04MDj7kYZJaMab2S8SPjGJbotVNyv7QYFCOAwrGZs/YnoDNlh1U+m5hl7H2D/+n0taaAV/tfyd3KMA== + +better-path-resolve@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" + integrity sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== + dependencies: + is-windows "^1.0.0" + +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +boxen@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +breakword@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.5.tgz#fd420a417f55016736b5b615161cae1c8f819810" + integrity sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg== + dependencies: + wcwidth "^1.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= + +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== + +cacache@^12.0.0, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cachedir@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" + integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@4.1.0, chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commitizen@4.2.3, commitizen@^4.0.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.3.tgz#088d0ef72500240d331b11e02e288223667c1475" + integrity sha512-pYlYEng7XMV2TW4xtjDKBGqeJ0Teq2zyRSx2S3Ml1XAplHSlJZK8vm1KdGclpMEZuGafbS5TeHXIVnHk8RWIzQ== + dependencies: + cachedir "2.2.0" + cz-conventional-changelog "3.2.0" + dedent "0.7.0" + detect-indent "6.0.0" + find-node-modules "2.0.0" + find-root "1.1.0" + fs-extra "8.1.0" + glob "7.1.4" + inquirer "6.5.2" + is-utf8 "^0.2.1" + lodash "^4.17.20" + minimist "1.2.5" + strip-bom "4.0.0" + strip-json-comments "3.0.1" + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +conventional-changelog-angular@^5.0.0, conventional-changelog-angular@^5.0.3: + version "5.0.12" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" + integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-conventionalcommits@^4.3.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz#a02e0b06d11d342fdc0f00c91d78265ed0bc0a62" + integrity sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-changelog-core@^3.1.6: + version "3.2.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" + integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + dependencies: + conventional-changelog-writer "^4.0.6" + conventional-commits-parser "^3.0.3" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^2.0.3" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + +conventional-changelog-preset-loader@^2.1.1: + version "2.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== + +conventional-changelog-writer@^4.0.6: + version "4.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz#1ca7880b75aa28695ad33312a1f2366f4b12659f" + integrity sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw== + dependencies: + compare-func "^2.0.0" + conventional-commits-filter "^2.0.7" + dateformat "^3.0.0" + handlebars "^4.7.6" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^8.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^4.0.0" + +conventional-commit-types@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz#7c9214e58eae93e85dd66dbfbafe7e4fffa2365b" + integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== + +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" + integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + +conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz#9e261b139ca4b7b29bcebbc54460da36894004ca" + integrity sha512-XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^2.0.0" + through2 "^4.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" + integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.1.1" + conventional-commits-filter "^2.0.2" + conventional-commits-parser "^3.0.3" + git-raw-commits "2.0.0" + git-semver-tags "^2.0.3" + meow "^4.0.0" + q "^1.5.1" + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js@^3.6.1: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" + integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csv-generate@^3.2.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.3.0.tgz#0e25658f1bb9806d94fec7b270896a35c7eedf1a" + integrity sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA== + +csv-parse@^4.8.8: + version "4.15.1" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.15.1.tgz#fc5a0a1b24eaa6d4c24892daa387c46f7f92f8d2" + integrity sha512-TXIvRtNp0fqMJbk3yPR35bQIDzMH4khDwduElzE7Fl1wgnl25mnWYLSLqd/wS5GsDoX1rWtysivEYMNsz5jKwQ== + +csv-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/csv-parser/-/csv-parser-3.0.0.tgz#b88a6256d79e090a97a1b56451f9327b01d710e7" + integrity sha512-s6OYSXAK3IdKqYO33y09jhypG/bSDHPuyCme/IdEHfWpLf/jKcpitVFyOC6UemgGk8v7Q5u2XE0vvwmanxhGlQ== + dependencies: + minimist "^1.2.0" + +csv-stringify@^5.3.6: + version "5.6.1" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.1.tgz#d790bca20f20ed5a8887a3dce3ac458d611cd2e0" + integrity sha512-JlQlNZMiuRGSFbLXFNGoBtsORXlkqf4Dfq8Ee0Jo4RVJj3YAUzevagUx24mDrQJLDF7aYz6Ne8kqA8WWBaYt2A== + +csv@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/csv/-/csv-5.3.2.tgz#50b344e25dfbb8c62684a1bcec18c22468b2161e" + integrity sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ== + dependencies: + csv-generate "^3.2.4" + csv-parse "^4.8.8" + csv-stringify "^5.3.6" + stream-transform "^2.0.1" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +cz-conventional-changelog@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" + integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +cz-conventional-changelog@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" + integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= + dependencies: + number-is-nan "^1.0.0" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +dataloader@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" + integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== + +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@0.7.0, dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@6.0.0, detect-indent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +dot-prop@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" + integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== + dependencies: + is-obj "^1.0.0" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.0, enquirer@^2.3.5, enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +envinfo@^7.3.1: + version "7.7.4" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" + integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.18.0-next.1: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.1" + is-regex "^1.1.1" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" + integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== + +eslint-plugin-prettier@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7" + integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.19.0.tgz#6719621b196b5fad72e43387981314e5d0dc3f41" + integrity sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.3.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.20" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0, execa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extendable-error@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" + integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== + +external-editor@^3.0.3, external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.1.1: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" + integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + dependencies: + flat-cache "^3.0.4" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-node-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.0.0.tgz#5db1fb9e668a3d451db3d618cd167cdd59e41b69" + integrity sha512-8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw== + dependencies: + findup-sync "^3.0.0" + merge "^1.2.1" + +find-root@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-versions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== + dependencies: + semver-regex "^3.1.2" + +find-yarn-workspace-root2@1.2.16: + version "1.2.16" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" + integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== + dependencies: + micromatch "^4.0.2" + pkg-dir "^4.2.0" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@8.1.0, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.1.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" + integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" + integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +get-stdin@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +git-raw-commits@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" + integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-raw-commits@^2.0.0: + version "2.0.10" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" + integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" + integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== + dependencies: + meow "^4.0.0" + semver "^6.0.0" + +git-up@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" + integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + +git-url-parse@^11.1.2: + version "11.4.4" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.4.4.tgz#5d747debc2469c17bc385719f7d0427802d83d77" + integrity sha512-Y4o9o7vQngQDIU9IjyCmRJBin5iYjI5u9ZITnddRZpD7dcCFQj2sL2XuMNbLRE4b4B/4ENPsp2Q8P44fjAZ0Pw== + dependencies: + git-up "^4.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + dependencies: + ini "^1.3.2" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.0, globby@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +graceful-fs@^4.1.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.5.tgz#bc18864a6c9fc7b303f2e2abdb9155ad178fbe29" + integrity sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hosted-git-info@^3.0.6: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +human-id@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3" + integrity sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +husky@4.3.8: + version "4.3.8" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" + integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^7.0.0" + find-versions "^4.0.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^5.0.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.2, ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inquirer@6.5.2, inquirer@^6.2.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0, is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-regex@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-ssh@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" + integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== + dependencies: + protocols "^1.1.0" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-subdir@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" + integrity sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== + dependencies: + better-path-resolve "1.0.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + dependencies: + text-extensions "^1.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +lerna@^3.22.1: + version "3.22.1" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.22.1.tgz#82027ac3da9c627fd8bf02ccfeff806a98e65b62" + integrity sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg== + dependencies: + "@lerna/add" "3.21.0" + "@lerna/bootstrap" "3.21.0" + "@lerna/changed" "3.21.0" + "@lerna/clean" "3.21.0" + "@lerna/cli" "3.18.5" + "@lerna/create" "3.22.0" + "@lerna/diff" "3.21.0" + "@lerna/exec" "3.21.0" + "@lerna/import" "3.22.0" + "@lerna/info" "3.21.0" + "@lerna/init" "3.21.0" + "@lerna/link" "3.21.0" + "@lerna/list" "3.21.0" + "@lerna/publish" "3.22.1" + "@lerna/run" "3.21.0" + "@lerna/version" "3.22.1" + import-local "^2.0.0" + npmlog "^4.1.2" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lint-staged@10.5.3: + version "10.5.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.3.tgz#c682838b3eadd4c864d1022da05daa0912fb1da5" + integrity sha512-TanwFfuqUBLufxCc3RUtFEkFraSPNR3WzWcGF39R3f2J7S9+iF9W0KTVLfSy09lYGmZS5NDCxjNvhGMSJyFCWg== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + commander "^6.2.0" + cosmiconfig "^7.0.0" + debug "^4.2.0" + dedent "^0.7.0" + enquirer "^2.3.6" + execa "^4.1.0" + listr2 "^3.2.2" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +listr2@^3.2.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.3.1.tgz#87b57cc0b8541fa794b814c8bcb76f1211cfbf5c" + integrity sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.3" + through "^2.3.8" + wrap-ansi "^7.0.0" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-json-file@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +load-yaml-file@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" + integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== + dependencies: + graceful-fs "^4.1.5" + js-yaml "^3.13.0" + pify "^4.0.1" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + +lodash.map@^4.5.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= + +lodash.template@^4.0.2, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4.x, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.2.1: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +longest@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" + integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +macos-release@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" + integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" + integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +meow@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" + integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merge@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0, minimist-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@1.2.5, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixme@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.4.0.tgz#a1aee27f0d63cc905e1cc6ddc98abf94d414435e" + integrity sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw== + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@1.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@^2.5.0, node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-gyp@^5.0.2: + version "5.1.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.1.2" + request "^2.88.0" + rimraf "^2.6.3" + semver "^5.7.1" + tar "^4.4.12" + which "^1.3.1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1" + integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" + integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== + dependencies: + hosted-git-info "^3.0.6" + resolve "^1.17.0" + semver "^7.3.2" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-lifecycle@^3.1.2: + version "3.1.5" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.15" + node-gyp "^5.0.2" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" + integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" + integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +outdent@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" + integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" + integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== + dependencies: + p-map "^2.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + +p-map@^2.0.0, p-map@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-pipe@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= + +p-queue@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" + integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== + dependencies: + eventemitter3 "^3.1.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" + integrity sha1-ftlLPOszMngjU69qrhGqn8I1uwA= + dependencies: + p-reduce "^1.0.0" + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse-path@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" + integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + qs "^6.9.4" + query-string "^6.13.8" + +parse-url@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" + integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +preferred-pm@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.2.tgz#bbdbef1014e34a7490349bf70d6d244b8d57a5e1" + integrity sha512-yGIxyBkK/OWOppgCXfOeOXOeNrddyK1DzqS6XpOokRZb2ogXTpHRhKDTO7d0pjF/2p2sV9pEkKL4e0tNZI1y2A== + dependencies: + find-up "^5.0.0" + find-yarn-workspace-root2 "1.2.16" + path-exists "^4.0.0" + which-pm "2.0.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +prettier@^1.18.2, prettier@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + dependencies: + read "1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" + integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@^6.9.4: + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^6.13.8: + version "6.13.8" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.8.tgz#8cf231759c85484da3cf05a851810d8e825c1159" + integrity sha512-jxJzQI2edQPE/NPUOusNjO/ZOGqr1o2OBa/3M00fU76FsLXDVbJDv/p7ng5OdQyorKrkRz1oqfwmbe5MAMePQg== + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +read-cmd-shim@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" + integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== + dependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.1.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" + integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== + dependencies: + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^2.0.0" + npm-normalize-package-bin "^1.0.0" + +read-package-tree@^5.1.6: + version "5.3.1" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + dependencies: + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + util-promisify "^2.1.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-yaml-file@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-yaml-file/-/read-yaml-file-1.1.0.tgz#9362bbcbdc77007cc8ea4519fe1c0b821a7ce0d8" + integrity sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== + dependencies: + graceful-fs "^4.1.5" + js-yaml "^3.6.1" + pify "^4.0.1" + strip-bom "^3.0.0" + +read@1, read@~1.0.1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-scoped-modules@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.10.0, resolve@^1.17.0, resolve@^1.18.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.4.0, rxjs@^6.6.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-regex@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" + integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== + +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@7.x, semver@^7.2.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slide@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +smartwrap@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.2.5.tgz#45ee3e09ac234e5f7f17c16e916f511834f3cd23" + integrity sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg== + dependencies: + breakword "^1.0.5" + grapheme-splitter "^1.0.4" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + yargs "^15.1.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.17, source-map-support@^0.5.6: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +spawndamnit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" + integrity sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== + dependencies: + cross-spawn "^5.1.0" + signal-exit "^3.0.2" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +stream-transform@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.0.4.tgz#911ff7556d1e25c237e95d783f6739d9e0b4a61c" + integrity sha512-LQXH1pUksoef5Ijo6+2ihnjLLZtZuoqu1vhut6a7xZ77nrLA/shbbx2FAzVC/nkb6wwrPzOO98700mv4HDQcWg== + dependencies: + mixme "^0.4.0" + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@4.0.0, strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strong-log-transformer@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + dependencies: + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +temp-write@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI= + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0, through2@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= + +ts-jest@26.5.0: + version "26.5.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.0.tgz#3e3417d91bc40178a6716d7dacc5b0505835aa21" + integrity sha512-Ya4IQgvIFNa2Mgq52KaO8yBw2W8tWp61Ecl66VjF0f5JaV8u50nGoptHVILOPGoI7SDnShmEqnYQEmyHdQ+56g== + dependencies: + "@types/jest" "26.x" + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.17.1: + version "3.20.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" + integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== + dependencies: + tslib "^1.8.1" + +tty-table@^2.8.10: + version "2.8.13" + resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-2.8.13.tgz#d484a416381973eaebbdf19c79136b390e5c6d70" + integrity sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ== + dependencies: + chalk "^3.0.0" + csv "^5.3.1" + smartwrap "^1.2.3" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + yargs "^15.1.0" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + +uglify-js@^3.1.4: + version "3.12.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.6.tgz#f884584fcc42e10bca70db5cb32e8625c2c42535" + integrity sha512-aqWHe3DfQmZUDGWBbabZ2eQnJlQd1fKlMUu7gV+MiTuDzdgDw31bI3wA2jLLsV/hNcDP26IfyEgSVoft5+0SVw== + +uid-number@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= + +umask@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util-promisify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= + dependencies: + object.getownpropertydescriptors "^2.0.3" + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which-pm@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" + integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== + dependencies: + load-yaml-file "^0.2.0" + path-exists "^4.0.0" + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +windows-release@^3.1.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" + integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg== + dependencies: + execa "^1.0.0" + +word-wrap@^1.0.3, word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" + integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +ws@^7.2.3: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@20.x, yargs-parser@^20.2.3: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2, yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^14.2.2: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + +yargs@^15.1.0, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==