├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .gitattributes
├── .github
├── CODEOWNERS
├── dependabot.yml
└── workflows
│ ├── automerge.yml
│ ├── ci.yml
│ ├── failureNotifications.yml
│ ├── manualRelease.yml
│ ├── notify-slack-on-pr-open.yml
│ ├── onPushToMain.yml
│ ├── onRelease.yml
│ └── test.yml
├── .gitignore
├── .mocharc.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── git2gus
└── config.json
├── handle.js
├── package.json
├── src
├── config.ts
├── errors
│ ├── cli.ts
│ ├── exit.ts
│ └── pretty-print.ts
├── global.d.ts
├── handle.ts
├── index.ts
├── logger.ts
└── screen.ts
├── test
├── error.test.ts
├── handle.test.ts
├── helpers
│ └── init.js
├── pretty-print.test.ts
├── tsconfig.json
└── warn.test.ts
├── tsconfig.json
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 |
10 | [*.md]
11 | trim_trailing_whitespace = false
12 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /lib
2 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "oclif",
4 | "oclif-typescript"
5 | ],
6 | "rules": {}
7 | }
8 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.js text eol=lf
3 | *.ts text eol=lf
4 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @heroku/cli
2 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: 'npm'
4 | directory: '/'
5 | schedule:
6 | interval: 'weekly'
7 | day: 'saturday'
8 | versioning-strategy: 'increase'
9 | labels:
10 | - 'dependencies'
11 | open-pull-requests-limit: 5
12 | pull-request-branch-name:
13 | separator: '-'
14 | commit-message:
15 | # cause a release for non-dev-deps
16 | prefix: fix(deps)
17 | # no release for dev-deps
18 | prefix-development: chore(dev-deps)
19 | ignore:
20 | - dependency-name: '@salesforce/dev-scripts'
21 | - dependency-name: '*'
22 | update-types: ['version-update:semver-major']
23 |
--------------------------------------------------------------------------------
/.github/workflows/automerge.yml:
--------------------------------------------------------------------------------
1 | name: automerge
2 | on:
3 | workflow_dispatch:
4 | schedule:
5 | - cron: '17 2,5,8,11 * * *'
6 |
7 | jobs:
8 | automerge:
9 | uses: oclif/github-workflows/.github/workflows/automerge.yml@main
10 | secrets: inherit
11 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: Node.js CI
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | pull_request:
7 | branches: [ master ]
8 |
9 | jobs:
10 | build:
11 | runs-on: windows-latest
12 | strategy:
13 | matrix:
14 | node-version: [10.x, 12.x]
15 | steps:
16 | - uses: actions/checkout@v2
17 | - name: Use Node.js ${{ matrix.node-version }}
18 | uses: actions/setup-node@v1
19 | with:
20 | node-version: ${{ matrix.node-version }}
21 | - run: yarn install
22 | env:
23 | CI: true
24 | - run: yarn test
25 | env:
26 | CI: true
27 |
--------------------------------------------------------------------------------
/.github/workflows/failureNotifications.yml:
--------------------------------------------------------------------------------
1 | name: failureNotifications
2 |
3 | on:
4 | workflow_run:
5 | workflows:
6 | - version, tag and github release
7 | - publish
8 | types:
9 | - completed
10 |
11 | jobs:
12 | failure-notify:
13 | runs-on: ubuntu-latest
14 | if: ${{ github.event.workflow_run.conclusion == 'failure' }}
15 | steps:
16 | - name: Announce Failure
17 | id: slack
18 | uses: slackapi/slack-github-action@v1.21.0
19 | env:
20 | # for non-CLI-team-owned plugins, you can send this anywhere you like
21 | SLACK_WEBHOOK_URL: ${{ secrets.CLI_ALERTS_SLACK_WEBHOOK }}
22 | SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
23 | with:
24 | payload: |
25 | {
26 | "text": "${{ github.event.workflow_run.name }} failed: ${{ github.event.workflow_run.repository.name }}",
27 | "blocks": [
28 | {
29 | "type": "header",
30 | "text": {
31 | "type": "plain_text",
32 | "text": ":bh-alert: ${{ github.event.workflow_run.name }} failed: ${{ github.event.workflow_run.repository.name }} :bh-alert:"
33 | }
34 | },
35 | {
36 | "type": "section",
37 | "text": {
38 | "type": "mrkdwn",
39 | "text": "Repo: ${{ github.event.workflow_run.repository.html_url }}\nWorkflow name: `${{ github.event.workflow_run.name }}`\nJob url: ${{ github.event.workflow_run.html_url }}"
40 | }
41 | }
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/.github/workflows/manualRelease.yml:
--------------------------------------------------------------------------------
1 | name: manual release
2 |
3 | on:
4 | workflow_dispatch:
5 |
6 | jobs:
7 | release:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v3
11 | with:
12 | token: ${{ secrets.SVC_CLI_BOT_GITHUB_TOKEN }}
13 | - name: Conventional Changelog Action
14 | id: changelog
15 | uses: TriPSs/conventional-changelog-action@d360fad3a42feca6462f72c97c165d60a02d4bf2
16 | # overriding some of the basic behaviors to just get the changelog
17 | with:
18 | git-user-name: svc-cli-bot
19 | git-user-email: svc_cli_bot@salesforce.com
20 | github-token: ${{ secrets.SVC_CLI_BOT_GITHUB_TOKEN }}
21 | output-file: false
22 | # always do the release, even if there are no semantic commits
23 | skip-on-empty: false
24 | tag-prefix: ''
25 | - uses: notiz-dev/github-action-json-property@2192e246737701f108a4571462b76c75e7376216
26 | id: packageVersion
27 | with:
28 | path: 'package.json'
29 | prop_path: 'version'
30 | - name: Create Github Release
31 | uses: actions/create-release@v1
32 | env:
33 | GITHUB_TOKEN: ${{ secrets.SVC_CLI_BOT_GITHUB_TOKEN }}
34 | with:
35 | tag_name: ${{ steps.packageVersion.outputs.prop }}
36 | release_name: ${{ steps.packageVersion.outputs.prop }}
37 |
--------------------------------------------------------------------------------
/.github/workflows/notify-slack-on-pr-open.yml:
--------------------------------------------------------------------------------
1 | name: Pull Request Slack Notification
2 |
3 | on:
4 | pull_request:
5 | types: [opened, reopened]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Notify Slack on PR open
12 | env:
13 | WEBHOOK_URL : ${{ secrets.CLI_TEAM_SLACK_WEBHOOK_URL }}
14 | PULL_REQUEST_AUTHOR_ICON_URL : ${{ github.event.pull_request.user.avatar_url }}
15 | PULL_REQUEST_AUTHOR_NAME : ${{ github.event.pull_request.user.login }}
16 | PULL_REQUEST_AUTHOR_PROFILE_URL: ${{ github.event.pull_request.user.html_url }}
17 | PULL_REQUEST_BASE_BRANCH_NAME : ${{ github.event.pull_request.base.ref }}
18 | PULL_REQUEST_COMPARE_BRANCH_NAME : ${{ github.event.pull_request.head.ref }}
19 | PULL_REQUEST_NUMBER : ${{ github.event.pull_request.number }}
20 | PULL_REQUEST_REPO: ${{ github.event.pull_request.head.repo.name }}
21 | PULL_REQUEST_TITLE : ${{ github.event.pull_request.title }}
22 | PULL_REQUEST_URL : ${{ github.event.pull_request.html_url }}
23 | uses: salesforcecli/github-workflows/.github/actions/prNotification@main
24 |
--------------------------------------------------------------------------------
/.github/workflows/onPushToMain.yml:
--------------------------------------------------------------------------------
1 | # test
2 | name: version, tag and github release
3 |
4 | on:
5 | push:
6 | branches: [main]
7 |
8 | jobs:
9 | release:
10 | uses: oclif/github-workflows/.github/workflows/githubRelease.yml@main
11 | secrets: inherit
12 |
13 | # most repos won't use this
14 | # depends on previous job to avoid git collisions, not for any functionality reason
15 | # docs:
16 | # uses: salesforcecli/github-workflows/.github/workflows/publishTypedoc.yml@main
17 | # secrets: inherit
18 | # needs: release
19 |
--------------------------------------------------------------------------------
/.github/workflows/onRelease.yml:
--------------------------------------------------------------------------------
1 | name: publish
2 |
3 | on:
4 | release:
5 | types: [released]
6 | # support manual release in case something goes wrong and needs to be repeated or tested
7 | workflow_dispatch:
8 | inputs:
9 | tag:
10 | description: tag that needs to publish
11 | type: string
12 | required: true
13 | jobs:
14 | npm:
15 | uses: oclif/github-workflows/.github/workflows/npmPublish.yml@main
16 | with:
17 | tag: latest
18 | githubTag: ${{ github.event.release.tag_name || inputs.tag }}
19 | secrets: inherit
20 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: tests
2 | on:
3 | push:
4 | branches-ignore: [main]
5 | workflow_dispatch:
6 |
7 | jobs:
8 | unit-tests:
9 | uses: oclif/github-workflows/.github/workflows/unitTest.yml@main
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *-debug.log
2 | *-error.log
3 | .oclif.manifest.json
4 | /lib
5 | /node_modules
6 | /tmp
7 |
--------------------------------------------------------------------------------
/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "require": [
3 | "test/helpers/init.js",
4 | "ts-node/register",
5 | "source-map-support/register"
6 | ],
7 | "watch-extensions": [
8 | "ts"
9 | ],
10 | "recursive": true,
11 | "reporter": "spec",
12 | "timeout": 60000
13 | }
14 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## [1.3.3](https://github.com/oclif/errors/compare/v1.3.2...v1.3.3) (2020-06-29)
2 |
3 |
4 | ### Bug Fixes
5 |
6 | * remove deprecation warning for render in exit error ([#44](https://github.com/oclif/errors/issues/44)) ([3b2e5fa](https://github.com/oclif/errors/commit/3b2e5fae7e9e9e9540044a2d4f7df435d4f2cffb))
7 |
8 | ## [1.2.2](https://github.com/oclif/errors/compare/v1.2.1...v1.2.2) (2018-10-13)
9 |
10 |
11 | ### Bug Fixes
12 |
13 | * remove greenkeeper badge ([43b4076](https://github.com/oclif/errors/commit/43b4076))
14 |
15 | ## [1.2.1](https://github.com/oclif/errors/compare/v1.2.0...v1.2.1) (2018-09-14)
16 |
17 |
18 | ### Bug Fixes
19 |
20 | * updated deps ([7996855](https://github.com/oclif/errors/commit/7996855))
21 |
22 |
23 | # [1.2.0](https://github.com/oclif/errors/compare/9ae179034c7c8bdc1c62f03eb819d58de7735f3d...v1.2.0) (2018-08-17)
24 |
25 |
26 | ### Features
27 |
28 | * typescript 3 ([5332289](https://github.com/oclif/errors/commit/5332289))
29 |
30 |
31 | ## [1.1.2](https://github.com/oclif/errors/compare/ca758e6a4e3c3016fa93114e62b248868cb51de2...v1.1.2) (2018-05-21)
32 |
33 |
34 | ### Bug Fixes
35 |
36 | * Handle misformed error response (without `stack`) ([#8](https://github.com/oclif/errors/issues/8)) ([9ae1790](https://github.com/oclif/errors/commit/9ae1790))
37 |
38 |
39 | ## [1.1.1](https://github.com/oclif/errors/compare/6694bc782ac5ff4d1a5844106544238ac189dd58...v1.1.1) (2018-05-12)
40 |
41 |
42 | ### Bug Fixes
43 |
44 | * typing ([ca758e6](https://github.com/oclif/errors/commit/ca758e6))
45 |
46 |
47 | # [1.1.0](https://github.com/oclif/errors/compare/100472457af1a172e10410e63900fc3e268e3af5...v1.1.0) (2018-05-12)
48 |
49 |
50 | ### Features
51 |
52 | * allow printing errors without exiting ([6694bc7](https://github.com/oclif/errors/commit/6694bc7))
53 |
54 |
55 | ## [1.0.12](https://github.com/oclif/errors/compare/02aadd51988e662b77c20c03809dca03f77a1695...v1.0.12) (2018-05-10)
56 |
57 |
58 | ### Bug Fixes
59 |
60 | * bump fs-extra ([1004724](https://github.com/oclif/errors/commit/1004724))
61 |
62 |
63 | ## [1.0.11](https://github.com/oclif/errors/compare/18d489147a952bdeece6fbfaae4ca7b0615817ce...v1.0.11) (2018-05-09)
64 |
65 |
66 | ### Bug Fixes
67 |
68 | * clean exit on sigint ([02aadd5](https://github.com/oclif/errors/commit/02aadd5))
69 |
70 |
71 | ## [1.0.10](https://github.com/oclif/errors/compare/74d02c2c63f93a9e051abc3cbd48dc9eaabb74c9...v1.0.10) (2018-05-09)
72 |
73 |
74 | ### Bug Fixes
75 |
76 | * force exiting on errors ([18d4891](https://github.com/oclif/errors/commit/18d4891))
77 |
78 |
79 | ## [1.0.9](https://github.com/oclif/errors/compare/c314aefee4aea31ab0fb6d58593517a77b505ac3...v1.0.9) (2018-05-06)
80 |
81 |
82 | ### Bug Fixes
83 |
84 | * return type of error function ([eef7598](https://github.com/oclif/errors/commit/eef7598))
85 | * return type of exit ([74d02c2](https://github.com/oclif/errors/commit/74d02c2))
86 |
87 |
88 | ## [1.0.8](https://github.com/oclif/errors/compare/452c383c79744cc24fe4439aa49590379848e8a8...v1.0.8) (2018-05-02)
89 |
90 |
91 | ### Bug Fixes
92 |
93 | * error wrapping ([c314aef](https://github.com/oclif/errors/commit/c314aef))
94 |
95 |
96 | ## [1.0.7](https://github.com/oclif/errors/compare/3668c9074d87de57a63938379b0458ab373fb76b...v1.0.7) (2018-05-01)
97 |
98 |
99 | ### Bug Fixes
100 |
101 | * updated fs-extra ([452c383](https://github.com/oclif/errors/commit/452c383))
102 |
103 |
104 | ## [1.0.6](https://github.com/oclif/errors/compare/e7a5d464b3e7039aa0d8b9734b48a97717980417...v1.0.6) (2018-04-21)
105 |
106 |
107 | ### Bug Fixes
108 |
109 | * fix warning rendering ([3668c90](https://github.com/oclif/errors/commit/3668c90))
110 |
111 |
112 | ## [1.0.5](https://github.com/oclif/errors/compare/266b7f622295242539669cb0327dd17067ec9e3c...v1.0.5) (2018-04-21)
113 |
114 |
115 | ### Bug Fixes
116 |
117 | * only render if it is a function ([e7a5d46](https://github.com/oclif/errors/commit/e7a5d46))
118 |
119 |
120 | ## [1.0.4](https://github.com/oclif/errors/compare/6528f456cec3e5102e0a255061816da9ba455a89...v1.0.4) (2018-04-07)
121 |
122 |
123 | ### Bug Fixes
124 |
125 | * hide EEXIT errors from logfile ([266b7f6](https://github.com/oclif/errors/commit/266b7f6))
126 |
127 |
128 | ## [1.0.3](https://github.com/oclif/errors/compare/v1.0.2...v1.0.3) (2018-03-24)
129 |
130 |
131 | ### Bug Fixes
132 |
133 | * only render if it is a function ([6528f45](https://github.com/oclif/errors/commit/6528f45))
134 |
135 |
136 | ## [1.0.1](https://github.com/oclif/errors/compare/v1.0.0...v1.0.1) (2018-02-13)
137 |
138 |
139 | ### Bug Fixes
140 |
141 | * testing release ([bfd09be](https://github.com/oclif/errors/commit/bfd09be))
142 |
143 |
144 | ## [0.2.2](https://github.com/anycli/errors/compare/7ad688c9e18f2f161e5cc43345b1c47175bc284f...v0.2.2) (2018-02-07)
145 |
146 |
147 | ### Bug Fixes
148 |
149 | * better error handlings ([57a1e1a](https://github.com/anycli/errors/commit/57a1e1a))
150 |
151 |
152 | ## [0.2.1](https://github.com/anycli/errors/compare/9e8e0453b06cb544002ed6cd39a24bad3798dd2e...v0.2.1) (2018-02-06)
153 |
154 |
155 | ### Bug Fixes
156 |
157 | * fixed test suite ([7ad688c](https://github.com/anycli/errors/commit/7ad688c))
158 | * make bang less bold ([ee56ab5](https://github.com/anycli/errors/commit/ee56ab5))
159 |
160 |
161 | # [0.2.0](https://github.com/anycli/errors/compare/0a8f0bcd92c1add9742a3cbdaac69814508ab5fe...v0.2.0) (2018-02-06)
162 |
163 |
164 | ### Features
165 |
166 | * added debug mode ([9e8e045](https://github.com/anycli/errors/commit/9e8e045))
167 |
168 |
169 | # [0.1.0](https://github.com/anycli/errors/compare/5e19840abea86d17344ba3b53f11820bc41093f6...v0.1.0) (2018-02-06)
170 |
171 |
172 | ### Features
173 |
174 | * add exit function ([0a8f0bc](https://github.com/anycli/errors/commit/0a8f0bc))
175 |
176 |
177 | ## [0.0.3](https://github.com/anycli/errors/compare/c12a1a5eef7273091cec2b9eaaccd3448fd3ce7c...v0.0.3) (2018-02-06)
178 |
179 |
180 | ### Bug Fixes
181 |
182 | * fixed tests in windows ([5e19840](https://github.com/anycli/errors/commit/5e19840))
183 |
184 |
185 | ## [0.0.2](https://github.com/anycli/errors/compare/9303163b5db791d8e3d6a70b464c719176c23c6b...v0.0.2) (2018-02-06)
186 |
187 |
188 | ### Bug Fixes
189 |
190 | * add dev deps ([c12a1a5](https://github.com/anycli/errors/commit/c12a1a5))
191 |
192 |
193 | ## [0.0.1](https://github.com/anycli/errors/compare/4f86b9dc1221be9b2a7735d41dfb068478035368...v0.0.1) (2018-02-06)
194 |
195 |
196 | ### Bug Fixes
197 |
198 | * improve flushing ([9303163](https://github.com/anycli/errors/commit/9303163))
199 | * run tsc before test ([5f1a56d](https://github.com/anycli/errors/commit/5f1a56d))
200 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Salesforce.com
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | @oclif/errors
2 | ==============
3 |
4 | **This library has been replaced by [@oclif/core](https://github.com/oclif/core) and is no longer maintained**
5 |
6 | display friendly CLI errors and log to error log
7 |
8 | [](https://npmjs.org/package/@oclif/errors)
9 | [](https://circleci.com/gh/oclif/errors/tree/main)
10 | [](https://ci.appveyor.com/project/heroku/errors/branch/main)
11 | [](https://snyk.io/test/npm/@oclif/errors)
12 | [](https://npmjs.org/package/@oclif/errors)
13 | [](https://github.com/oclif/errors/blob/main/package.json)
14 |
--------------------------------------------------------------------------------
/git2gus/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "productTag": "a1aB00000004Bx8IAE",
3 | "defaultBuild": "offcore.tooling.55"
4 | }
--------------------------------------------------------------------------------
/handle.js:
--------------------------------------------------------------------------------
1 | module.exports = err => require('./lib/handle').handle(err)
2 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@oclif/errors",
3 | "description": "display friendly CLI errors and log to error log",
4 | "version": "1.3.6",
5 | "author": "Salesforce",
6 | "bugs": "https://github.com/oclif/errors/issues",
7 | "dependencies": {
8 | "clean-stack": "^3.0.0",
9 | "fs-extra": "^8.1",
10 | "indent-string": "^4.0.0",
11 | "strip-ansi": "^6.0.1",
12 | "wrap-ansi": "^7.0.0"
13 | },
14 | "devDependencies": {
15 | "@types/chai": "^4.3.0",
16 | "@types/clean-stack": "^2.1.1",
17 | "@types/fs-extra": "^9.0",
18 | "@types/indent-string": "^4.0.1",
19 | "@types/mocha": "^8.2.3",
20 | "@types/node": "^14.18.32",
21 | "@types/strip-ansi": "^5.2.1",
22 | "@types/wrap-ansi": "^3.0.0",
23 | "chai": "^4.3.6",
24 | "chalk": "^4.1.0",
25 | "eslint": "^7.3.0",
26 | "eslint-config-oclif": "^3.1.0",
27 | "eslint-config-oclif-typescript": "^0.2.0",
28 | "fancy-test": "^1.4.8",
29 | "mocha": "^8.2.1",
30 | "nock": "^13.2.4",
31 | "ts-node": "^9.1.1",
32 | "typescript": "~3.9.10"
33 | },
34 | "engines": {
35 | "node": ">=8.0.0"
36 | },
37 | "files": [
38 | "/handle.js",
39 | "/lib"
40 | ],
41 | "homepage": "https://github.com/oclif/errors",
42 | "keywords": [
43 | "oclif"
44 | ],
45 | "license": "MIT",
46 | "main": "lib/index.js",
47 | "repository": "oclif/errors",
48 | "scripts": {
49 | "build": "rm -rf lib && tsc",
50 | "lint": "eslint . --ext .ts --config .eslintrc",
51 | "posttest": "rm -rf lib && yarn lint",
52 | "prepublishOnly": "yarn run build",
53 | "pretest": "yarn run build && tsc -p test --noEmit",
54 | "test": "mocha --forbid-only \"test/**/*.test.ts\""
55 | },
56 | "types": "lib/index.d.ts"
57 | }
--------------------------------------------------------------------------------
/src/config.ts:
--------------------------------------------------------------------------------
1 | import {Logger} from './logger'
2 |
3 | // eslint-disable-next-line no-multi-assign
4 | const g = (global as any).oclif = (global as any).oclif || {}
5 |
6 | function displayWarnings() {
7 | if (process.listenerCount('warning') > 1) return
8 | process.on('warning', (warning: any) => {
9 | console.error(warning.stack)
10 | if (warning.detail) console.error(warning.detail)
11 | })
12 | }
13 |
14 | export const config = {
15 | errorLogger: undefined as Logger | undefined,
16 | get debug(): boolean {
17 | return Boolean(g.debug)
18 | },
19 | set debug(enabled: boolean) {
20 | g.debug = enabled
21 | if (enabled) displayWarnings()
22 | },
23 | get errlog(): string | undefined {
24 | return g.errlog
25 | },
26 | set errlog(errlog: string | undefined) {
27 | g.errlog = errlog
28 | if (errlog) this.errorLogger = new Logger(errlog)
29 | else delete this.errorLogger
30 | },
31 | }
32 |
--------------------------------------------------------------------------------
/src/errors/cli.ts:
--------------------------------------------------------------------------------
1 | // tslint:disable no-implicit-dependencies
2 |
3 | import * as Chalk from 'chalk'
4 | import Clean = require('clean-stack')
5 | import Indent = require('indent-string')
6 | import * as Wrap from 'wrap-ansi'
7 |
8 | import {config} from '../config'
9 | import {PrettyPrintableError} from './pretty-print'
10 |
11 | /**
12 | * properties specific to internal oclif error handling
13 | */
14 | export interface OclifError {
15 | oclif: {
16 | exit?: number | false;
17 | };
18 | }
19 |
20 | export function addOclifExitCode(error: Record, options?: { exit?: number | false }): OclifError {
21 | if (!('oclif' in error)) {
22 | (error as unknown as OclifError).oclif = {}
23 | }
24 |
25 | error.oclif.exit = options?.exit === undefined ? 2 : options.exit
26 | return error as OclifError
27 | }
28 |
29 | export class CLIError extends Error implements OclifError {
30 | oclif: OclifError['oclif'] = {}
31 |
32 | code?: string
33 |
34 | constructor(error: string | Error, options: { exit?: number | false } & PrettyPrintableError = {}) {
35 | super(error instanceof Error ? error.message : error)
36 | addOclifExitCode(this, options)
37 | this.code = options.code
38 | }
39 |
40 | get stack(): string {
41 | const clean: typeof Clean = require('clean-stack')
42 | return clean(super.stack!, {pretty: true})
43 | }
44 |
45 | /**
46 | * @deprecated `render` Errors display should be handled by display function, like pretty-print
47 | * @return {string} returns a string representing the dispay of the error
48 | */
49 | render(): string {
50 | if (config.debug) {
51 | return this.stack
52 | }
53 | const wrap: typeof Wrap = require('wrap-ansi')
54 | const indent: typeof Indent = require('indent-string')
55 |
56 | let output = `${this.name}: ${this.message}`
57 | // eslint-disable-next-line node/no-missing-require
58 | output = wrap(output, require('../screen').errtermwidth - 6, {trim: false, hard: true} as any)
59 | output = indent(output, 3)
60 | output = indent(output, 1, {indent: this.bang, includeEmptyLines: true} as any)
61 | output = indent(output, 1)
62 | return output
63 | }
64 |
65 | get bang() {
66 | let red: typeof Chalk.red = ((s: string) => s) as any
67 | try {
68 | red = require('chalk').red
69 | } catch { }
70 | return red(process.platform === 'win32' ? '»' : '›')
71 | }
72 | }
73 |
74 | export namespace CLIError {
75 | export class Warn extends CLIError {
76 | constructor(err: string | Error) {
77 | super(err instanceof Error ? err.message : err)
78 | this.name = 'Warning'
79 | }
80 |
81 | get bang() {
82 | let yellow: typeof Chalk.yellow = ((s: string) => s) as any
83 | try {
84 | yellow = require('chalk').yellow
85 | } catch { }
86 | return yellow(process.platform === 'win32' ? '»' : '›')
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/src/errors/exit.ts:
--------------------------------------------------------------------------------
1 | import {CLIError, OclifError} from './cli'
2 |
3 | export class ExitError extends CLIError implements OclifError {
4 | oclif!: { exit: number }
5 |
6 | code = 'EEXIT'
7 |
8 | constructor(exitCode = 0) {
9 | super(`EEXIT: ${exitCode}`, {exit: exitCode})
10 | }
11 |
12 | render(): string {
13 | return ''
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/errors/pretty-print.ts:
--------------------------------------------------------------------------------
1 | import * as wrap from 'wrap-ansi'
2 | import indent = require('indent-string')
3 | import * as screen from '../screen'
4 | import {config} from '../config'
5 |
6 | export interface PrettyPrintableError {
7 | /**
8 | * messsage to display related to the error
9 | */
10 | message?: string;
11 |
12 | /**
13 | * a unique error code for this error class
14 | */
15 | code?: string;
16 |
17 | /**
18 | * a url to find out more information related to this error
19 | * or fixing the error
20 | */
21 | ref?: string;
22 |
23 | /**
24 | * a suggestion that may be useful or provide additional context
25 | */
26 | suggestions?: string[];
27 | }
28 |
29 | // These exist for backwards compatibility with CLIError
30 | type CLIErrorDisplayOptions = { name?: string; bang?: string }
31 |
32 | export function applyPrettyPrintOptions(error: Error, options: PrettyPrintableError): PrettyPrintableError {
33 | const prettyErrorKeys: (keyof PrettyPrintableError)[] = ['message', 'code', 'ref', 'suggestions']
34 |
35 | prettyErrorKeys.forEach(key => {
36 | const applyOptionsKey = !(key in error) && options[key]
37 | if (applyOptionsKey) {
38 | (error as any)[key] = options[key]
39 | }
40 | })
41 |
42 | return error
43 | }
44 |
45 | const formatSuggestions = (suggestions?: string[]): string | undefined => {
46 | const label = 'Try this:'
47 | if (!suggestions || suggestions.length === 0) return undefined
48 | if (suggestions.length === 1) return `${label} ${suggestions[0]}`
49 |
50 | const multiple = suggestions.map(suggestion => `* ${suggestion}`).join('\n')
51 | return `${label}\n${indent(multiple, 2)}`
52 | }
53 |
54 | export default function prettyPrint(error: Error & PrettyPrintableError & CLIErrorDisplayOptions) {
55 | if (config.debug) {
56 | return error.stack
57 | }
58 |
59 | const {message, code, suggestions, ref, name: errorSuffix, bang} = error
60 |
61 | // errorSuffix is pulled from the 'name' property on CLIError
62 | // and is like either Error or Warning
63 | const formattedHeader = message ? `${errorSuffix || 'Error'}: ${message}` : undefined
64 | const formattedCode = code ? `Code: ${code}` : undefined
65 | const formattedSuggestions = formatSuggestions(suggestions)
66 | const formattedReference = ref ? `Reference: ${ref}` : undefined
67 |
68 | const formatted = [formattedHeader, formattedCode, formattedSuggestions, formattedReference]
69 | .filter(Boolean)
70 | .join('\n')
71 |
72 | let output = wrap(formatted, screen.errtermwidth - 6, {trim: false, hard: true} as any)
73 | output = indent(output, 3)
74 | output = indent(output, 1, {indent: bang || '', includeEmptyLines: true} as any)
75 | output = indent(output, 1)
76 |
77 | return output
78 | }
79 |
--------------------------------------------------------------------------------
/src/global.d.ts:
--------------------------------------------------------------------------------
1 | // tslint:disable
2 |
3 | declare namespace NodeJS {
4 | interface Global {
5 | oclif?: {
6 | debug?: boolean;
7 | errlog?: string;
8 | };
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/handle.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-process-exit */
2 | /* eslint-disable unicorn/no-process-exit */
3 | import {config} from './config'
4 | import prettyPrint, {PrettyPrintableError} from './errors/pretty-print'
5 | import clean = require('clean-stack')
6 | import {OclifError, CLIError} from './errors/cli'
7 |
8 | export const handle = (err: Error & Partial & Partial) => {
9 | try {
10 | if (!err) err = new CLIError('no error?')
11 | if (err.message === 'SIGINT') process.exit(1)
12 |
13 | const shouldPrint = !(err.code === 'EEXIT')
14 | const pretty = prettyPrint(err)
15 | const stack = clean(err.stack || '', {pretty: true})
16 |
17 | if (shouldPrint) {
18 | console.error(pretty ? pretty : stack)
19 | }
20 |
21 | const exitCode = err.oclif?.exit !== undefined && err.oclif?.exit !== false ? err.oclif?.exit : 1
22 |
23 | if (config.errorLogger && err.code !== 'EEXIT') {
24 | if (stack) {
25 | config.errorLogger.log(stack)
26 | }
27 |
28 | config.errorLogger.flush()
29 | .then(() => process.exit(exitCode))
30 | .catch(console.error)
31 | } else process.exit(exitCode)
32 | } catch (error) {
33 | console.error(err.stack)
34 | console.error(error.stack)
35 | process.exit(1)
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | // tslint:disable no-console
2 |
3 | export {handle} from './handle'
4 | export {ExitError} from './errors/exit'
5 | export {CLIError} from './errors/cli'
6 | export {Logger} from './logger'
7 | export {config} from './config'
8 |
9 | import {config} from './config'
10 | import {CLIError, addOclifExitCode, OclifError} from './errors/cli'
11 | import {ExitError} from './errors/exit'
12 | import prettyPrint, {PrettyPrintableError, applyPrettyPrintOptions} from './errors/pretty-print'
13 |
14 | export {PrettyPrintableError}
15 |
16 | export function exit(code = 0): never {
17 | throw new ExitError(code)
18 | }
19 |
20 | export function error(input: string | Error, options: {exit: false} & PrettyPrintableError): void
21 | export function error(input: string | Error, options?: {exit?: number} & PrettyPrintableError): never
22 | export function error(input: string | Error, options: {exit?: number | false} & PrettyPrintableError = {}) {
23 | let err: Error & OclifError
24 |
25 | if (typeof input === 'string') {
26 | err = new CLIError(input, options)
27 | } else if (input instanceof Error) {
28 | err = addOclifExitCode(input, options) as Error & OclifError
29 | } else {
30 | throw new TypeError('first argument must be a string or instance of Error')
31 | }
32 |
33 | err = applyPrettyPrintOptions(err, options) as Error & OclifError & PrettyPrintableError
34 |
35 | if (options.exit === false) {
36 | const message = prettyPrint(err)
37 | console.error(message)
38 | if (config.errorLogger) config.errorLogger.log(err?.stack ?? '')
39 | } else throw err
40 | }
41 |
42 | export function warn(input: string | Error) {
43 | let err: Error & OclifError
44 |
45 | if (typeof input === 'string') {
46 | err = new CLIError.Warn(input)
47 | } else if (input instanceof Error) {
48 | err = addOclifExitCode(input) as Error & OclifError
49 | } else {
50 | throw new TypeError('first argument must be a string or instance of Error')
51 | }
52 |
53 | const message = prettyPrint(err)
54 | console.error(message)
55 | if (config.errorLogger) config.errorLogger.log(err?.stack ?? '')
56 | }
57 |
--------------------------------------------------------------------------------
/src/logger.ts:
--------------------------------------------------------------------------------
1 | import * as FS from 'fs-extra'
2 | import * as path from 'path'
3 | import StripAnsi = require('strip-ansi')
4 |
5 | const timestamp = () => new Date().toISOString()
6 | let timer: any
7 | const wait = (ms: number) => new Promise(resolve => {
8 | if (timer) timer.unref()
9 | timer = setTimeout(() => resolve(), ms)
10 | })
11 |
12 | function chomp(s: string): string {
13 | if (s.endsWith('\n')) return s.replace(/\n$/, '')
14 | return s
15 | }
16 |
17 | export class Logger {
18 | protected flushing: Promise = Promise.resolve()
19 |
20 | protected buffer: string[] = []
21 |
22 | // eslint-disable-next-line no-useless-constructor
23 | constructor(public file: string) {}
24 |
25 | log(msg: string) {
26 | const stripAnsi: typeof StripAnsi = require('strip-ansi')
27 | msg = stripAnsi(chomp(msg))
28 | const lines = msg.split('\n').map(l => `${timestamp()} ${l}`.trimRight())
29 | this.buffer.push(...lines)
30 | // tslint:disable-next-line no-console
31 | this.flush(50).catch(console.error)
32 | }
33 |
34 | async flush(waitForMs = 0) {
35 | await wait(waitForMs)
36 | this.flushing = this.flushing.then(async () => {
37 | if (this.buffer.length === 0) return
38 | const mylines = this.buffer
39 | this.buffer = []
40 | const fs: typeof FS = require('fs-extra')
41 | await fs.mkdirp(path.dirname(this.file))
42 | await fs.appendFile(this.file, mylines.join('\n') + '\n')
43 | })
44 | await this.flushing
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/screen.ts:
--------------------------------------------------------------------------------
1 | function termwidth(stream: any): number {
2 | if (!stream.isTTY || !stream.getWindowSize) {
3 | return 80
4 | }
5 | const width = stream.getWindowSize()[0]
6 | if (width < 1) {
7 | return 80
8 | }
9 | if (width < 40) {
10 | return 40
11 | }
12 | return width
13 | }
14 |
15 | const columns: number | null = (global as any).columns
16 |
17 | export const stdtermwidth = columns || termwidth(process.stdout)
18 | export const errtermwidth = columns || termwidth(process.stderr)
19 |
--------------------------------------------------------------------------------
/test/error.test.ts:
--------------------------------------------------------------------------------
1 | import {expect, fancy} from 'fancy-test'
2 | import {error} from '../src'
3 | import {PrettyPrintableError} from '../src/errors/pretty-print'
4 |
5 | describe('error', () => {
6 | fancy
7 | .do(() => {
8 | error('An error happened!')
9 | })
10 | .catch((error: PrettyPrintableError) => {
11 | expect(error.message).to.equal('An error happened!')
12 | })
13 | .it('throws an error using a string argument')
14 |
15 | fancy
16 | .do(() => {
17 | error('An error happened!', {code: 'ERR', ref: 'https://oclif.com/error', suggestions: ['rm -rf node_modules']})
18 | })
19 | .catch((error: PrettyPrintableError) => {
20 | expect(error.message).to.equal('An error happened!')
21 | expect(error.code).to.equal('ERR')
22 | expect(error.ref).to.equal('https://oclif.com/error')
23 | expect(error.suggestions).to.deep.equal(['rm -rf node_modules'])
24 | })
25 | .it('attaches pretty print properties to a new error from options')
26 |
27 | fancy
28 | .do(() => {
29 | error(new Error('An existing error object error!'), {code: 'ERR', ref: 'https://oclif.com/error', suggestions: ['rm -rf node_modules']})
30 | })
31 | .catch((error: PrettyPrintableError) => {
32 | expect(error.message).to.equal('An existing error object error!')
33 | expect(error.code).to.equal('ERR')
34 | expect(error.ref).to.equal('https://oclif.com/error')
35 | expect(error.suggestions).to.deep.equal(['rm -rf node_modules'])
36 | })
37 | .it('attached pretty print properties from options to an existing error object')
38 |
39 | fancy
40 | .do(() => {
41 | const e: any = new Error('An existing error object error!')
42 | e.code = 'ORIG_ERR'
43 | e.ref = 'ORIG_REF'
44 | e.suggestions = ['ORIG_SUGGESTION']
45 | error(e, {code: 'ERR', ref: 'https://oclif.com/error', suggestions: ['rm -rf node_modules']})
46 | })
47 | .catch((error: PrettyPrintableError) => {
48 | expect(error.code).to.equal('ORIG_ERR')
49 | expect(error.ref).to.equal('ORIG_REF')
50 | expect(error.suggestions).to.deep.equal(['ORIG_SUGGESTION'])
51 | })
52 | .it('preserves original pretty printable properties and is not overwritten by options')
53 |
54 | fancy
55 | .stdout()
56 | .stderr()
57 | .do(() => {
58 | error('an error is reported but is not rethrown', {exit: false})
59 | })
60 | // there is no .catch here because the error is not rethrown
61 | // however it should be outputted
62 | .it('does not rethrow error when exit: false option is set', ctx => {
63 | expect(ctx.stderr).to.contain('Error: an error is reported but is not rethrown')
64 | expect(ctx.stdout).to.equal('')
65 | })
66 |
67 | describe('applying oclif errors', () => {
68 | fancy
69 | .do(() => {
70 | error(new Error('An existing error object error!'))
71 | })
72 | .catch((error: any) => {
73 | const defaultErrorCode = 2
74 | expect(error.oclif.exit).to.equal(defaultErrorCode)
75 | })
76 | .it('adds oclif exit code to errors by default')
77 |
78 | fancy
79 | .do(() => {
80 | error(new Error('An existing error object error!'), {exit: 9001})
81 | })
82 | .catch((error: any) => {
83 | expect(error.oclif.exit).to.equal(9001)
84 | })
85 | .it('applies the exit property on options to the error object')
86 |
87 | fancy
88 | .do(() => {
89 | const e: any = new Error('An existing error object error!')
90 | e.oclif = {
91 | code: 'ORIG_EXIT_CODE',
92 | }
93 |
94 | error(e)
95 | })
96 | .catch((error: any) => {
97 | expect(error.oclif.code).to.equal('ORIG_EXIT_CODE')
98 | })
99 | .it('preserves original oclif exitable error properties and is not overwritten by options')
100 | })
101 | })
102 |
--------------------------------------------------------------------------------
/test/handle.test.ts:
--------------------------------------------------------------------------------
1 | import {expect, fancy} from 'fancy-test'
2 | import * as fs from 'fs-extra'
3 | import * as path from 'path'
4 |
5 | import {CLIError, config, ExitError} from '../src'
6 | import {handle} from '../src/handle'
7 | import {exit as exitErrorThrower} from '../src'
8 |
9 | const errlog = path.join(__dirname, '../tmp/mytest/error.log')
10 | const x = process.platform === 'win32' ? '»' : '›'
11 |
12 | const originalExit = process.exit
13 | const originalExitCode = process.exitCode
14 |
15 | describe('handle', () => {
16 | beforeEach(() => {
17 | process.exitCode = undefined;
18 | (process as any).exit = (code: any) => {
19 | process.exitCode = code
20 | }
21 | })
22 | afterEach(() => {
23 | (process as any).exit = originalExit;
24 | (process as any).exitCode = originalExitCode
25 | })
26 |
27 | fancy
28 | .stderr()
29 | .finally(() => delete process.exitCode)
30 | .it('displays an error from root handle module', ctx => {
31 | require('../handle')(new Error('x'))
32 | expect(ctx.stderr).to.contain('Error: x')
33 | expect(process.exitCode).to.equal(1)
34 | })
35 |
36 | fancy
37 | .stderr()
38 | .finally(() => delete process.exitCode)
39 | .it('shows an unhandled error', ctx => {
40 | handle(new Error('x'))
41 | expect(ctx.stderr).to.contain('Error: x')
42 | expect(process.exitCode).to.equal(1)
43 | })
44 |
45 | fancy
46 | .stderr()
47 | .finally(() => delete process.exitCode)
48 | .it('handles a badly formed error object', () => {
49 | handle({status: 400} as any)
50 | expect(process.exitCode).to.equal(1)
51 | })
52 |
53 | fancy
54 | .stderr()
55 | .finally(() => delete process.exitCode)
56 | .it('shows a cli error', ctx => {
57 | handle(new CLIError('x'))
58 | expect(ctx.stderr).to.equal(` ${x} Error: x\n`)
59 | expect(process.exitCode).to.equal(2)
60 | })
61 |
62 | fancy
63 | .stdout()
64 | .stderr()
65 | .finally(() => delete process.exitCode)
66 | .it('hides an exit error', ctx => {
67 | handle(new ExitError())
68 | expect(ctx.stdout).to.equal('')
69 | expect(ctx.stderr).to.equal('')
70 | expect(process.exitCode).to.equal(0)
71 | })
72 |
73 | fancy
74 | .stderr()
75 | .do(() => {
76 | config.errlog = errlog
77 | })
78 | .finally(() => {
79 | config.errlog = undefined
80 | })
81 | .finally(() => delete process.exitCode)
82 | .it('logs when errlog is set', async ctx => {
83 | handle(new CLIError('uh oh!'))
84 | expect(ctx.stderr).to.equal(` ${x} Error: uh oh!\n`)
85 | await config.errorLogger!.flush()
86 | expect(fs.readFileSync(errlog, 'utf8')).to.contain('Error: uh oh!')
87 | expect(process.exitCode).to.equal(2)
88 | })
89 |
90 | describe('exit', () => {
91 | fancy
92 | .stderr()
93 | .stdout()
94 | .it('exits without displaying anything', ctx => {
95 | try {
96 | exitErrorThrower(9000)
97 | } catch (error) {
98 | handle(error)
99 | }
100 |
101 | expect(ctx.stdout).to.equal('')
102 | expect(ctx.stderr).to.equal('')
103 | expect(process.exitCode).to.be.equal(9000)
104 | })
105 | })
106 | })
107 |
--------------------------------------------------------------------------------
/test/helpers/init.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 | process.env.TS_NODE_PROJECT = path.resolve('test/tsconfig.json')
3 |
--------------------------------------------------------------------------------
/test/pretty-print.test.ts:
--------------------------------------------------------------------------------
1 | import {expect, fancy} from 'fancy-test'
2 | import prettyPrint, {PrettyPrintableError} from '../src/errors/pretty-print'
3 | import {CLIError} from '../src'
4 | import {config} from '../src/config'
5 | const stripAnsi = require('strip-ansi')
6 |
7 | describe('pretty-print', () => {
8 | fancy
9 | .it('pretty prints an error', async () => {
10 | const sampleError: Error & PrettyPrintableError = new Error('Something very serious has gone wrong with the flags!')
11 | sampleError.ref = 'https://oclif.io/docs/flags'
12 | sampleError.code = 'OCLIF_BAD_FLAG'
13 | sampleError.suggestions = ['Try using using a good flag']
14 |
15 | expect(
16 | stripAnsi(prettyPrint(sampleError)),
17 | ).to.equal(` Error: Something very serious has gone wrong with the flags!
18 | Code: OCLIF_BAD_FLAG
19 | Try this: Try using using a good flag
20 | Reference: https://oclif.io/docs/flags`)
21 | })
22 |
23 | fancy
24 | .it('pretty prints multiple suggestions', async () => {
25 | const sampleError: Error & PrettyPrintableError = new Error('Something very serious has gone wrong with the flags!')
26 | sampleError.suggestions = ['Use a good flag', 'Use no flags']
27 | expect(
28 | stripAnsi(prettyPrint(sampleError)),
29 | ).to.equal(` Error: Something very serious has gone wrong with the flags!
30 | Try this:
31 | * Use a good flag
32 | * Use no flags`)
33 | })
34 |
35 | fancy
36 | .it('pretty prints with omitted fields', async () => {
37 | const sampleError = new Error('Something very serious has gone wrong with the flags!')
38 |
39 | expect(
40 | stripAnsi(prettyPrint(sampleError)),
41 | ).to.equal(' Error: Something very serious has gone wrong with the flags!')
42 | })
43 |
44 | describe('CLI Error properties', () => {
45 | fancy
46 | .it('supports the bang property', async () => {
47 | class SampleCLIError extends CLIError {
48 | get bang() {
49 | return '>>>'
50 | }
51 | }
52 |
53 | const sampleError = new SampleCLIError('This is a CLI error')
54 | expect(stripAnsi(prettyPrint(sampleError))).to.equal(' >>> Error: This is a CLI error')
55 | })
56 |
57 | fancy
58 | .it('supports the \'name\' message prefix property', async () => {
59 | const defaultBang = process.platform === 'win32' ? '»' : '›'
60 | const sampleError = new CLIError('This is a CLI error')
61 | sampleError.name = 'Errorz'
62 | expect(stripAnsi(prettyPrint(sampleError))).to.equal(` ${defaultBang} Errorz: This is a CLI error`)
63 | })
64 | })
65 |
66 | describe('config.debug set to true', () => {
67 | let initialConfigDebug: any
68 |
69 | beforeEach(() => {
70 | initialConfigDebug = config.debug
71 | config.debug = true
72 | })
73 |
74 | afterEach(() => {
75 | config.debug = initialConfigDebug
76 | })
77 |
78 | fancy
79 | .it('shows the stack for an error', async () => {
80 | const error = new Error()
81 | error.stack = 'this is the error stack property'
82 | expect(prettyPrint(error)).to.equal('this is the error stack property')
83 | })
84 | })
85 | })
86 |
--------------------------------------------------------------------------------
/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig",
3 | "compilerOptions": {
4 | "sourceMap": true,
5 | "module": "commonjs"
6 | },
7 | "include": [
8 | "./**/*"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/test/warn.test.ts:
--------------------------------------------------------------------------------
1 | import {expect, fancy} from 'fancy-test'
2 | import * as fs from 'fs-extra'
3 | import * as path from 'path'
4 |
5 | import {config, warn} from '../src'
6 |
7 | const errlog = path.join(__dirname, '../tmp/mytest/warn.log')
8 |
9 | describe('warn', () => {
10 | fancy
11 | .stderr()
12 | .do(() => {
13 | config.errlog = errlog
14 | })
15 | .finally(() => {
16 | config.errlog = undefined
17 | })
18 | .it('warns', async ctx => {
19 | warn('foo!')
20 | expect(ctx.stderr).to.contain('Warning: foo!')
21 | expect(process.exitCode).to.be.undefined
22 | await config.errorLogger!.flush()
23 | expect(fs.readFileSync(errlog, 'utf8')).to.contain('Warning: foo!')
24 | })
25 | })
26 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": true,
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "module": "commonjs",
7 | "noUnusedLocals": true,
8 | "noUnusedParameters": true,
9 | "outDir": "./lib",
10 | "pretty": true,
11 | "rootDirs": [
12 | "./src"
13 | ],
14 | "strict": true,
15 | "target": "es2017"
16 | },
17 | "include": [
18 | "./src/**/*"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@7.12.11":
6 | version "7.12.11"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/helper-validator-identifier@^7.12.11":
13 | version "7.12.11"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
15 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
16 |
17 | "@babel/highlight@^7.10.4":
18 | version "7.13.8"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481"
20 | integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.12.11"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@eslint/eslintrc@^0.4.1":
27 | version "0.4.1"
28 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14"
29 | integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==
30 | dependencies:
31 | ajv "^6.12.4"
32 | debug "^4.1.1"
33 | espree "^7.3.0"
34 | globals "^12.1.0"
35 | ignore "^4.0.6"
36 | import-fresh "^3.2.1"
37 | js-yaml "^3.13.1"
38 | minimatch "^3.0.4"
39 | strip-json-comments "^3.1.1"
40 |
41 | "@types/chai@*", "@types/chai@^4.3.0":
42 | version "4.3.0"
43 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.0.tgz#23509ebc1fa32f1b4d50d6a66c4032d5b8eaabdc"
44 | integrity sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==
45 |
46 | "@types/clean-stack@^2.1.1":
47 | version "2.1.1"
48 | resolved "https://registry.yarnpkg.com/@types/clean-stack/-/clean-stack-2.1.1.tgz#7dd5430b733d088263b01653ea0ec39af9fe67f1"
49 | integrity sha512-J5uaZmvDUsqeT7Vct/oHQuAGUzJBWmN9x33TlvTfvIMmCZ2Ep6v/09wKsK5cLtOTJJe6tGcMTg8TwP/h6e1svw==
50 | dependencies:
51 | clean-stack "*"
52 |
53 | "@types/color-name@^1.1.1":
54 | version "1.1.1"
55 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
56 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
57 |
58 | "@types/eslint-visitor-keys@^1.0.0":
59 | version "1.0.0"
60 | resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
61 | integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
62 |
63 | "@types/fs-extra@^9.0":
64 | version "9.0.13"
65 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45"
66 | integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==
67 | dependencies:
68 | "@types/node" "*"
69 |
70 | "@types/indent-string@^4.0.1":
71 | version "4.0.1"
72 | resolved "https://registry.yarnpkg.com/@types/indent-string/-/indent-string-4.0.1.tgz#fb4e6b8cdd8e94f70c105e78fb5d357a767b7193"
73 | integrity sha512-cIe4VIMWLlX9ugJRULZMgKoh88+AdD+6e7K9Y0s5QkbEJujoyVfKcmO2y9hbOU8ma/tbyHFaJN1+hQ0SyWo2iA==
74 | dependencies:
75 | indent-string "*"
76 |
77 | "@types/json-schema@^7.0.3":
78 | version "7.0.3"
79 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636"
80 | integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==
81 |
82 | "@types/lodash@*":
83 | version "4.14.156"
84 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.156.tgz#cbe30909c89a1feeb7c60803e785344ea0ec82d1"
85 | integrity sha512-l2AgHXcKUwx2DsvP19wtRPqZ4NkONjmorOdq4sMcxIjqdIuuV/ULo2ftuv4NUpevwfW7Ju/UKLqo0ZXuEt/8lQ==
86 |
87 | "@types/mocha@^8.2.3":
88 | version "8.2.3"
89 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323"
90 | integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==
91 |
92 | "@types/node@*", "@types/node@^14.18.32":
93 | version "14.18.32"
94 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.32.tgz#8074f7106731f1a12ba993fe8bad86ee73905014"
95 | integrity sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow==
96 |
97 | "@types/sinon@*":
98 | version "9.0.4"
99 | resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.4.tgz#e934f904606632287a6e7f7ab0ce3f08a0dad4b1"
100 | integrity sha512-sJmb32asJZY6Z2u09bl0G2wglSxDlROlAejCjsnor+LzBMz17gu8IU7vKC/vWDnv9zEq2wqADHVXFjf4eE8Gdw==
101 | dependencies:
102 | "@types/sinonjs__fake-timers" "*"
103 |
104 | "@types/sinonjs__fake-timers@*":
105 | version "6.0.1"
106 | resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e"
107 | integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==
108 |
109 | "@types/strip-ansi@^5.2.1":
110 | version "5.2.1"
111 | resolved "https://registry.yarnpkg.com/@types/strip-ansi/-/strip-ansi-5.2.1.tgz#acd97f1f091e332bb7ce697c4609eb2370fa2a92"
112 | integrity sha512-1l5iM0LBkVU8JXxnIoBqNvg+yyOXxPeN6DNoD+7A9AN1B8FhYPSeIXgyNqwIqg1uzipTgVC2hmuDzB0u9qw/PA==
113 | dependencies:
114 | strip-ansi "*"
115 |
116 | "@types/wrap-ansi@^3.0.0":
117 | version "3.0.0"
118 | resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
119 | integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==
120 |
121 | "@typescript-eslint/eslint-plugin@^2.6.1":
122 | version "2.7.0"
123 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.7.0.tgz#dff176bdb73dfd7e2e43062452189bd1b9db6021"
124 | integrity sha512-H5G7yi0b0FgmqaEUpzyBlVh0d9lq4cWG2ap0RKa6BkF3rpBb6IrAoubt1NWh9R2kRs/f0k6XwRDiDz3X/FqXhQ==
125 | dependencies:
126 | "@typescript-eslint/experimental-utils" "2.7.0"
127 | eslint-utils "^1.4.2"
128 | functional-red-black-tree "^1.0.1"
129 | regexpp "^2.0.1"
130 | tsutils "^3.17.1"
131 |
132 | "@typescript-eslint/experimental-utils@2.7.0":
133 | version "2.7.0"
134 | resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.7.0.tgz#58d790a3884df3041b5a5e08f9e5e6b7c41864b5"
135 | integrity sha512-9/L/OJh2a5G2ltgBWJpHRfGnt61AgDeH6rsdg59BH0naQseSwR7abwHq3D5/op0KYD/zFT4LS5gGvWcMmegTEg==
136 | dependencies:
137 | "@types/json-schema" "^7.0.3"
138 | "@typescript-eslint/typescript-estree" "2.7.0"
139 | eslint-scope "^5.0.0"
140 |
141 | "@typescript-eslint/parser@^2.6.1":
142 | version "2.7.0"
143 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.7.0.tgz#b5e6a4944e2b68dba1e7fbfd5242e09ff552fd12"
144 | integrity sha512-ctC0g0ZvYclxMh/xI+tyqP0EC2fAo6KicN9Wm2EIao+8OppLfxji7KAGJosQHSGBj3TcqUrA96AjgXuKa5ob2g==
145 | dependencies:
146 | "@types/eslint-visitor-keys" "^1.0.0"
147 | "@typescript-eslint/experimental-utils" "2.7.0"
148 | "@typescript-eslint/typescript-estree" "2.7.0"
149 | eslint-visitor-keys "^1.1.0"
150 |
151 | "@typescript-eslint/typescript-estree@2.7.0":
152 | version "2.7.0"
153 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.7.0.tgz#34fd98c77a07b40d04d5b4203eddd3abeab909f4"
154 | integrity sha512-vVCE/DY72N4RiJ/2f10PTyYekX2OLaltuSIBqeHYI44GQ940VCYioInIb8jKMrK9u855OEJdFC+HmWAZTnC+Ag==
155 | dependencies:
156 | debug "^4.1.1"
157 | glob "^7.1.4"
158 | is-glob "^4.0.1"
159 | lodash.unescape "4.0.1"
160 | semver "^6.3.0"
161 | tsutils "^3.17.1"
162 |
163 | "@ungap/promise-all-settled@1.1.2":
164 | version "1.1.2"
165 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
166 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
167 |
168 | acorn-jsx@^5.3.1:
169 | version "5.3.1"
170 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
171 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
172 |
173 | acorn@^7.4.0:
174 | version "7.4.1"
175 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
176 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
177 |
178 | ajv@^6.10.0, ajv@^6.12.4:
179 | version "6.12.6"
180 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
181 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
182 | dependencies:
183 | fast-deep-equal "^3.1.1"
184 | fast-json-stable-stringify "^2.0.0"
185 | json-schema-traverse "^0.4.1"
186 | uri-js "^4.2.2"
187 |
188 | ajv@^8.0.1:
189 | version "8.5.0"
190 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b"
191 | integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==
192 | dependencies:
193 | fast-deep-equal "^3.1.1"
194 | json-schema-traverse "^1.0.0"
195 | require-from-string "^2.0.2"
196 | uri-js "^4.2.2"
197 |
198 | ansi-colors@4.1.1:
199 | version "4.1.1"
200 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
201 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
202 |
203 | ansi-colors@^3.2.1:
204 | version "3.2.4"
205 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
206 | integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
207 |
208 | ansi-regex@^3.0.0:
209 | version "3.0.1"
210 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
211 | integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
212 |
213 | ansi-regex@^5.0.1:
214 | version "5.0.1"
215 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
216 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
217 |
218 | ansi-styles@^3.2.1:
219 | version "3.2.1"
220 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
221 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
222 | dependencies:
223 | color-convert "^1.9.0"
224 |
225 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
226 | version "4.2.1"
227 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
228 | integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
229 | dependencies:
230 | "@types/color-name" "^1.1.1"
231 | color-convert "^2.0.1"
232 |
233 | anymatch@~3.1.1:
234 | version "3.1.1"
235 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
236 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
237 | dependencies:
238 | normalize-path "^3.0.0"
239 | picomatch "^2.0.4"
240 |
241 | arg@^4.1.0:
242 | version "4.1.3"
243 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
244 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
245 |
246 | argparse@^1.0.7:
247 | version "1.0.10"
248 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
249 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
250 | dependencies:
251 | sprintf-js "~1.0.2"
252 |
253 | argparse@^2.0.1:
254 | version "2.0.1"
255 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
256 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
257 |
258 | assertion-error@^1.1.0:
259 | version "1.1.0"
260 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
261 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
262 |
263 | astral-regex@^2.0.0:
264 | version "2.0.0"
265 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
266 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
267 |
268 | balanced-match@^1.0.0:
269 | version "1.0.0"
270 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
271 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
272 |
273 | binary-extensions@^2.0.0:
274 | version "2.0.0"
275 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
276 | integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==
277 |
278 | brace-expansion@^1.1.7:
279 | version "1.1.11"
280 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
281 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
282 | dependencies:
283 | balanced-match "^1.0.0"
284 | concat-map "0.0.1"
285 |
286 | braces@~3.0.2:
287 | version "3.0.2"
288 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
289 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
290 | dependencies:
291 | fill-range "^7.0.1"
292 |
293 | browser-stdout@1.3.1:
294 | version "1.3.1"
295 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
296 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
297 |
298 | buffer-from@^1.0.0:
299 | version "1.1.1"
300 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
301 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
302 |
303 | callsites@^3.0.0:
304 | version "3.1.0"
305 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
306 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
307 |
308 | camelcase@^6.0.0:
309 | version "6.2.0"
310 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
311 | integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
312 |
313 | chai@^4.3.6:
314 | version "4.3.6"
315 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"
316 | integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
317 | dependencies:
318 | assertion-error "^1.1.0"
319 | check-error "^1.0.2"
320 | deep-eql "^3.0.1"
321 | get-func-name "^2.0.0"
322 | loupe "^2.3.1"
323 | pathval "^1.1.1"
324 | type-detect "^4.0.5"
325 |
326 | chalk@^2.0.0:
327 | version "2.4.2"
328 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
329 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
330 | dependencies:
331 | ansi-styles "^3.2.1"
332 | escape-string-regexp "^1.0.5"
333 | supports-color "^5.3.0"
334 |
335 | chalk@^4.0.0, chalk@^4.1.0:
336 | version "4.1.1"
337 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
338 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
339 | dependencies:
340 | ansi-styles "^4.1.0"
341 | supports-color "^7.1.0"
342 |
343 | check-error@^1.0.2:
344 | version "1.0.2"
345 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
346 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
347 |
348 | chokidar@3.5.1:
349 | version "3.5.1"
350 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
351 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
352 | dependencies:
353 | anymatch "~3.1.1"
354 | braces "~3.0.2"
355 | glob-parent "~5.1.0"
356 | is-binary-path "~2.1.0"
357 | is-glob "~4.0.1"
358 | normalize-path "~3.0.0"
359 | readdirp "~3.5.0"
360 | optionalDependencies:
361 | fsevents "~2.3.1"
362 |
363 | clean-regexp@^1.0.0:
364 | version "1.0.0"
365 | resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7"
366 | integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc=
367 | dependencies:
368 | escape-string-regexp "^1.0.5"
369 |
370 | clean-stack@*, clean-stack@^3.0.0:
371 | version "3.0.1"
372 | resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8"
373 | integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==
374 | dependencies:
375 | escape-string-regexp "4.0.0"
376 |
377 | cliui@^7.0.2:
378 | version "7.0.4"
379 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
380 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
381 | dependencies:
382 | string-width "^4.2.0"
383 | strip-ansi "^6.0.0"
384 | wrap-ansi "^7.0.0"
385 |
386 | color-convert@^1.9.0:
387 | version "1.9.3"
388 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
389 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
390 | dependencies:
391 | color-name "1.1.3"
392 |
393 | color-convert@^2.0.1:
394 | version "2.0.1"
395 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
396 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
397 | dependencies:
398 | color-name "~1.1.4"
399 |
400 | color-name@1.1.3:
401 | version "1.1.3"
402 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
403 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
404 |
405 | color-name@~1.1.4:
406 | version "1.1.4"
407 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
408 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
409 |
410 | concat-map@0.0.1:
411 | version "0.0.1"
412 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
413 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
414 |
415 | create-require@^1.1.0:
416 | version "1.1.1"
417 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
418 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
419 |
420 | cross-spawn@^7.0.2:
421 | version "7.0.3"
422 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
423 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
424 | dependencies:
425 | path-key "^3.1.0"
426 | shebang-command "^2.0.0"
427 | which "^2.0.1"
428 |
429 | debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
430 | version "4.3.1"
431 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
432 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
433 | dependencies:
434 | ms "2.1.2"
435 |
436 | debug@^3.1.0:
437 | version "3.2.6"
438 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
439 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
440 | dependencies:
441 | ms "^2.1.1"
442 |
443 | decamelize@^4.0.0:
444 | version "4.0.0"
445 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
446 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
447 |
448 | deep-eql@^3.0.1:
449 | version "3.0.1"
450 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
451 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
452 | dependencies:
453 | type-detect "^4.0.0"
454 |
455 | deep-is@^0.1.3:
456 | version "0.1.3"
457 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
458 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
459 |
460 | diff@5.0.0:
461 | version "5.0.0"
462 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
463 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
464 |
465 | diff@^4.0.1:
466 | version "4.0.2"
467 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
468 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
469 |
470 | doctrine@^3.0.0:
471 | version "3.0.0"
472 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
473 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
474 | dependencies:
475 | esutils "^2.0.2"
476 |
477 | emoji-regex@^8.0.0:
478 | version "8.0.0"
479 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
480 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
481 |
482 | enquirer@^2.3.5:
483 | version "2.3.5"
484 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381"
485 | integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==
486 | dependencies:
487 | ansi-colors "^3.2.1"
488 |
489 | escalade@^3.1.1:
490 | version "3.1.1"
491 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
492 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
493 |
494 | escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
495 | version "4.0.0"
496 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
497 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
498 |
499 | escape-string-regexp@^1.0.5:
500 | version "1.0.5"
501 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
502 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
503 |
504 | eslint-ast-utils@^1.0.0:
505 | version "1.1.0"
506 | resolved "https://registry.yarnpkg.com/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz#3d58ba557801cfb1c941d68131ee9f8c34bd1586"
507 | integrity sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==
508 | dependencies:
509 | lodash.get "^4.4.2"
510 | lodash.zip "^4.2.0"
511 |
512 | eslint-config-oclif-typescript@^0.2.0:
513 | version "0.2.0"
514 | resolved "https://registry.yarnpkg.com/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-0.2.0.tgz#8e2a1c788ce47af73d5bf8a3a0b5b2b6a80f05d6"
515 | integrity sha512-BdP5FgjxwqV9LmVnfd4TaxhwdQipY7GJVVuP2AKm+EkKoupSCflSiRqnd2cj8qvVq/IXYPK2eHpRDk5ts8hP9g==
516 | dependencies:
517 | "@typescript-eslint/eslint-plugin" "^2.6.1"
518 | "@typescript-eslint/parser" "^2.6.1"
519 | eslint-config-xo-space "^0.20.0"
520 | eslint-plugin-mocha "^5.2.0"
521 | eslint-plugin-node "^7.0.1"
522 | eslint-plugin-unicorn "^6.0.1"
523 |
524 | eslint-config-oclif@^3.1.0:
525 | version "3.1.0"
526 | resolved "https://registry.yarnpkg.com/eslint-config-oclif/-/eslint-config-oclif-3.1.0.tgz#cbc207ced09e31676dcee2f724fc509cd20eb0bd"
527 | integrity sha512-Tqgy43cNXsSdhTLWW4RuDYGFhV240sC4ISSv/ZiUEg/zFxExSEUpRE6J+AGnkKY9dYwIW4C9b2YSUVv8z/miMA==
528 | dependencies:
529 | eslint-config-xo-space "^0.20.0"
530 | eslint-plugin-mocha "^5.2.0"
531 | eslint-plugin-node "^7.0.1"
532 | eslint-plugin-unicorn "^6.0.1"
533 |
534 | eslint-config-xo-space@^0.20.0:
535 | version "0.20.0"
536 | resolved "https://registry.yarnpkg.com/eslint-config-xo-space/-/eslint-config-xo-space-0.20.0.tgz#75e1fb86d1b052fc1cc3036ca2fa441fa92b85e4"
537 | integrity sha512-bOsoZA8M6v1HviDUIGVq1fLVnSu3mMZzn85m2tqKb73tSzu4GKD4Jd2Py4ZKjCgvCbRRByEB5HPC3fTMnnJ1uw==
538 | dependencies:
539 | eslint-config-xo "^0.24.0"
540 |
541 | eslint-config-xo@^0.24.0:
542 | version "0.24.2"
543 | resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.24.2.tgz#f61b8ce692e9f9519bdb6edc4ed7ebcd5be48f48"
544 | integrity sha512-ivQ7qISScW6gfBp+p31nQntz1rg34UCybd3uvlngcxt5Utsf4PMMi9QoAluLFcPUM5Tvqk4JGraR9qu3msKPKQ==
545 |
546 | eslint-plugin-es@^1.3.1:
547 | version "1.4.1"
548 | resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998"
549 | integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==
550 | dependencies:
551 | eslint-utils "^1.4.2"
552 | regexpp "^2.0.1"
553 |
554 | eslint-plugin-mocha@^5.2.0:
555 | version "5.3.0"
556 | resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz#cf3eb18ae0e44e433aef7159637095a7cb19b15b"
557 | integrity sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==
558 | dependencies:
559 | ramda "^0.26.1"
560 |
561 | eslint-plugin-node@^7.0.1:
562 | version "7.0.1"
563 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db"
564 | integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==
565 | dependencies:
566 | eslint-plugin-es "^1.3.1"
567 | eslint-utils "^1.3.1"
568 | ignore "^4.0.2"
569 | minimatch "^3.0.4"
570 | resolve "^1.8.1"
571 | semver "^5.5.0"
572 |
573 | eslint-plugin-unicorn@^6.0.1:
574 | version "6.0.1"
575 | resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-6.0.1.tgz#4a97f0bc9449e20b82848dad12094ee2ba72347e"
576 | integrity sha512-hjy9LhTdtL7pz8WTrzS0CGXRkWK3VAPLDjihofj8JC+uxQLfXm0WwZPPPB7xKmcjRyoH+jruPHOCrHNEINpG/Q==
577 | dependencies:
578 | clean-regexp "^1.0.0"
579 | eslint-ast-utils "^1.0.0"
580 | import-modules "^1.1.0"
581 | lodash.camelcase "^4.1.1"
582 | lodash.kebabcase "^4.0.1"
583 | lodash.snakecase "^4.0.1"
584 | lodash.upperfirst "^4.2.0"
585 | safe-regex "^1.1.0"
586 |
587 | eslint-scope@^5.0.0, eslint-scope@^5.1.1:
588 | version "5.1.1"
589 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
590 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
591 | dependencies:
592 | esrecurse "^4.3.0"
593 | estraverse "^4.1.1"
594 |
595 | eslint-utils@^1.3.1, eslint-utils@^1.4.2:
596 | version "1.4.3"
597 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
598 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
599 | dependencies:
600 | eslint-visitor-keys "^1.1.0"
601 |
602 | eslint-utils@^2.1.0:
603 | version "2.1.0"
604 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
605 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
606 | dependencies:
607 | eslint-visitor-keys "^1.1.0"
608 |
609 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
610 | version "1.3.0"
611 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
612 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
613 |
614 | eslint-visitor-keys@^2.0.0:
615 | version "2.0.0"
616 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
617 | integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
618 |
619 | eslint@^7.3.0:
620 | version "7.27.0"
621 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7"
622 | integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==
623 | dependencies:
624 | "@babel/code-frame" "7.12.11"
625 | "@eslint/eslintrc" "^0.4.1"
626 | ajv "^6.10.0"
627 | chalk "^4.0.0"
628 | cross-spawn "^7.0.2"
629 | debug "^4.0.1"
630 | doctrine "^3.0.0"
631 | enquirer "^2.3.5"
632 | escape-string-regexp "^4.0.0"
633 | eslint-scope "^5.1.1"
634 | eslint-utils "^2.1.0"
635 | eslint-visitor-keys "^2.0.0"
636 | espree "^7.3.1"
637 | esquery "^1.4.0"
638 | esutils "^2.0.2"
639 | fast-deep-equal "^3.1.3"
640 | file-entry-cache "^6.0.1"
641 | functional-red-black-tree "^1.0.1"
642 | glob-parent "^5.0.0"
643 | globals "^13.6.0"
644 | ignore "^4.0.6"
645 | import-fresh "^3.0.0"
646 | imurmurhash "^0.1.4"
647 | is-glob "^4.0.0"
648 | js-yaml "^3.13.1"
649 | json-stable-stringify-without-jsonify "^1.0.1"
650 | levn "^0.4.1"
651 | lodash.merge "^4.6.2"
652 | minimatch "^3.0.4"
653 | natural-compare "^1.4.0"
654 | optionator "^0.9.1"
655 | progress "^2.0.0"
656 | regexpp "^3.1.0"
657 | semver "^7.2.1"
658 | strip-ansi "^6.0.0"
659 | strip-json-comments "^3.1.0"
660 | table "^6.0.9"
661 | text-table "^0.2.0"
662 | v8-compile-cache "^2.0.3"
663 |
664 | espree@^7.3.0, espree@^7.3.1:
665 | version "7.3.1"
666 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
667 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
668 | dependencies:
669 | acorn "^7.4.0"
670 | acorn-jsx "^5.3.1"
671 | eslint-visitor-keys "^1.3.0"
672 |
673 | esprima@^4.0.0:
674 | version "4.0.1"
675 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
676 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
677 |
678 | esquery@^1.4.0:
679 | version "1.4.0"
680 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
681 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
682 | dependencies:
683 | estraverse "^5.1.0"
684 |
685 | esrecurse@^4.3.0:
686 | version "4.3.0"
687 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
688 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
689 | dependencies:
690 | estraverse "^5.2.0"
691 |
692 | estraverse@^4.1.1:
693 | version "4.3.0"
694 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
695 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
696 |
697 | estraverse@^5.1.0:
698 | version "5.1.0"
699 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
700 | integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
701 |
702 | estraverse@^5.2.0:
703 | version "5.2.0"
704 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
705 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
706 |
707 | esutils@^2.0.2:
708 | version "2.0.2"
709 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
710 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
711 |
712 | fancy-test@^1.4.8:
713 | version "1.4.10"
714 | resolved "https://registry.yarnpkg.com/fancy-test/-/fancy-test-1.4.10.tgz#310be93d4aa45d788bce56a573ae4d1b92b2e1a0"
715 | integrity sha512-AaUX6wKS7D5OP2YK2q5G7c8PGx2lgoyLUD7Bbg8z323sb9aebBqzb9UN6phzI73UgO/ViihmNfOxF3kdfZLhew==
716 | dependencies:
717 | "@types/chai" "*"
718 | "@types/lodash" "*"
719 | "@types/node" "*"
720 | "@types/sinon" "*"
721 | lodash "^4.17.13"
722 | mock-stdin "^1.0.0"
723 | nock "^13.0.0"
724 | stdout-stderr "^0.1.9"
725 |
726 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
727 | version "3.1.3"
728 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
729 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
730 |
731 | fast-json-stable-stringify@^2.0.0:
732 | version "2.0.0"
733 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
734 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
735 |
736 | fast-levenshtein@^2.0.6:
737 | version "2.0.6"
738 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
739 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
740 |
741 | file-entry-cache@^6.0.1:
742 | version "6.0.1"
743 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
744 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
745 | dependencies:
746 | flat-cache "^3.0.4"
747 |
748 | fill-range@^7.0.1:
749 | version "7.0.1"
750 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
751 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
752 | dependencies:
753 | to-regex-range "^5.0.1"
754 |
755 | find-up@5.0.0:
756 | version "5.0.0"
757 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
758 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
759 | dependencies:
760 | locate-path "^6.0.0"
761 | path-exists "^4.0.0"
762 |
763 | flat-cache@^3.0.4:
764 | version "3.0.4"
765 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
766 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
767 | dependencies:
768 | flatted "^3.1.0"
769 | rimraf "^3.0.2"
770 |
771 | flat@^5.0.2:
772 | version "5.0.2"
773 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
774 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
775 |
776 | flatted@^3.1.0:
777 | version "3.1.0"
778 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
779 | integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
780 |
781 | fs-extra@^8.1:
782 | version "8.1.0"
783 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
784 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
785 | dependencies:
786 | graceful-fs "^4.2.0"
787 | jsonfile "^4.0.0"
788 | universalify "^0.1.0"
789 |
790 | fs.realpath@^1.0.0:
791 | version "1.0.0"
792 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
793 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
794 |
795 | fsevents@~2.3.1:
796 | version "2.3.2"
797 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
798 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
799 |
800 | functional-red-black-tree@^1.0.1:
801 | version "1.0.1"
802 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
803 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
804 |
805 | get-caller-file@^2.0.5:
806 | version "2.0.5"
807 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
808 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
809 |
810 | get-func-name@^2.0.0:
811 | version "2.0.0"
812 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
813 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
814 |
815 | glob-parent@^5.0.0, glob-parent@~5.1.0:
816 | version "5.1.2"
817 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
818 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
819 | dependencies:
820 | is-glob "^4.0.1"
821 |
822 | glob@7.1.6, glob@^7.1.3, glob@^7.1.4:
823 | version "7.1.6"
824 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
825 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
826 | dependencies:
827 | fs.realpath "^1.0.0"
828 | inflight "^1.0.4"
829 | inherits "2"
830 | minimatch "^3.0.4"
831 | once "^1.3.0"
832 | path-is-absolute "^1.0.0"
833 |
834 | globals@^12.1.0:
835 | version "12.4.0"
836 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
837 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
838 | dependencies:
839 | type-fest "^0.8.1"
840 |
841 | globals@^13.6.0:
842 | version "13.7.0"
843 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795"
844 | integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==
845 | dependencies:
846 | type-fest "^0.20.2"
847 |
848 | graceful-fs@^4.1.6, graceful-fs@^4.2.0:
849 | version "4.2.4"
850 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
851 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
852 |
853 | growl@1.10.5:
854 | version "1.10.5"
855 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
856 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
857 |
858 | has-flag@^3.0.0:
859 | version "3.0.0"
860 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
861 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
862 |
863 | has-flag@^4.0.0:
864 | version "4.0.0"
865 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
866 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
867 |
868 | he@1.2.0:
869 | version "1.2.0"
870 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
871 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
872 |
873 | ignore@^4.0.2, ignore@^4.0.6:
874 | version "4.0.6"
875 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
876 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
877 |
878 | import-fresh@^3.0.0, import-fresh@^3.2.1:
879 | version "3.2.2"
880 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
881 | integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
882 | dependencies:
883 | parent-module "^1.0.0"
884 | resolve-from "^4.0.0"
885 |
886 | import-modules@^1.1.0:
887 | version "1.1.0"
888 | resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-1.1.0.tgz#748db79c5cc42bb9701efab424f894e72600e9dc"
889 | integrity sha1-dI23nFzEK7lwHvq0JPiU5yYA6dw=
890 |
891 | imurmurhash@^0.1.4:
892 | version "0.1.4"
893 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
894 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
895 |
896 | indent-string@*, indent-string@^4.0.0:
897 | version "4.0.0"
898 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
899 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
900 |
901 | inflight@^1.0.4:
902 | version "1.0.6"
903 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
904 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
905 | dependencies:
906 | once "^1.3.0"
907 | wrappy "1"
908 |
909 | inherits@2:
910 | version "2.0.3"
911 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
912 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
913 |
914 | is-binary-path@~2.1.0:
915 | version "2.1.0"
916 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
917 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
918 | dependencies:
919 | binary-extensions "^2.0.0"
920 |
921 | is-extglob@^2.1.1:
922 | version "2.1.1"
923 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
924 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
925 |
926 | is-fullwidth-code-point@^2.0.0:
927 | version "2.0.0"
928 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
929 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
930 |
931 | is-fullwidth-code-point@^3.0.0:
932 | version "3.0.0"
933 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
934 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
935 |
936 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
937 | version "4.0.1"
938 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
939 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
940 | dependencies:
941 | is-extglob "^2.1.1"
942 |
943 | is-number@^7.0.0:
944 | version "7.0.0"
945 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
946 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
947 |
948 | is-plain-obj@^2.1.0:
949 | version "2.1.0"
950 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
951 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
952 |
953 | isexe@^2.0.0:
954 | version "2.0.0"
955 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
956 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
957 |
958 | js-tokens@^4.0.0:
959 | version "4.0.0"
960 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
961 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
962 |
963 | js-yaml@4.0.0:
964 | version "4.0.0"
965 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f"
966 | integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==
967 | dependencies:
968 | argparse "^2.0.1"
969 |
970 | js-yaml@^3.13.1:
971 | version "3.14.0"
972 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
973 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
974 | dependencies:
975 | argparse "^1.0.7"
976 | esprima "^4.0.0"
977 |
978 | json-schema-traverse@^0.4.1:
979 | version "0.4.1"
980 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
981 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
982 |
983 | json-schema-traverse@^1.0.0:
984 | version "1.0.0"
985 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
986 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
987 |
988 | json-stable-stringify-without-jsonify@^1.0.1:
989 | version "1.0.1"
990 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
991 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
992 |
993 | json-stringify-safe@^5.0.1:
994 | version "5.0.1"
995 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
996 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
997 |
998 | jsonfile@^4.0.0:
999 | version "4.0.0"
1000 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
1001 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
1002 | optionalDependencies:
1003 | graceful-fs "^4.1.6"
1004 |
1005 | levn@^0.4.1:
1006 | version "0.4.1"
1007 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1008 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1009 | dependencies:
1010 | prelude-ls "^1.2.1"
1011 | type-check "~0.4.0"
1012 |
1013 | locate-path@^6.0.0:
1014 | version "6.0.0"
1015 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1016 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1017 | dependencies:
1018 | p-locate "^5.0.0"
1019 |
1020 | lodash.camelcase@^4.1.1:
1021 | version "4.3.0"
1022 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
1023 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
1024 |
1025 | lodash.clonedeep@^4.5.0:
1026 | version "4.5.0"
1027 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
1028 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
1029 |
1030 | lodash.get@^4.4.2:
1031 | version "4.4.2"
1032 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
1033 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
1034 |
1035 | lodash.kebabcase@^4.0.1:
1036 | version "4.1.1"
1037 | resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
1038 | integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
1039 |
1040 | lodash.merge@^4.6.2:
1041 | version "4.6.2"
1042 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1043 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1044 |
1045 | lodash.set@^4.3.2:
1046 | version "4.3.2"
1047 | resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
1048 | integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=
1049 |
1050 | lodash.snakecase@^4.0.1:
1051 | version "4.1.1"
1052 | resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
1053 | integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=
1054 |
1055 | lodash.truncate@^4.4.2:
1056 | version "4.4.2"
1057 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
1058 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
1059 |
1060 | lodash.unescape@4.0.1:
1061 | version "4.0.1"
1062 | resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
1063 | integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
1064 |
1065 | lodash.upperfirst@^4.2.0:
1066 | version "4.3.1"
1067 | resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce"
1068 | integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=
1069 |
1070 | lodash.zip@^4.2.0:
1071 | version "4.2.0"
1072 | resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020"
1073 | integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=
1074 |
1075 | lodash@^4.17.13:
1076 | version "4.17.21"
1077 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1078 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1079 |
1080 | log-symbols@4.0.0:
1081 | version "4.0.0"
1082 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
1083 | integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
1084 | dependencies:
1085 | chalk "^4.0.0"
1086 |
1087 | loupe@^2.3.1:
1088 | version "2.3.1"
1089 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.1.tgz#a2e1192c9f452e4e85089766da10ac8288383947"
1090 | integrity sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==
1091 | dependencies:
1092 | get-func-name "^2.0.0"
1093 |
1094 | make-error@^1.1.1:
1095 | version "1.3.5"
1096 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
1097 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
1098 |
1099 | minimatch@3.0.4, minimatch@^3.0.4:
1100 | version "3.0.4"
1101 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1102 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1103 | dependencies:
1104 | brace-expansion "^1.1.7"
1105 |
1106 | mocha@^8.2.1:
1107 | version "8.4.0"
1108 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff"
1109 | integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==
1110 | dependencies:
1111 | "@ungap/promise-all-settled" "1.1.2"
1112 | ansi-colors "4.1.1"
1113 | browser-stdout "1.3.1"
1114 | chokidar "3.5.1"
1115 | debug "4.3.1"
1116 | diff "5.0.0"
1117 | escape-string-regexp "4.0.0"
1118 | find-up "5.0.0"
1119 | glob "7.1.6"
1120 | growl "1.10.5"
1121 | he "1.2.0"
1122 | js-yaml "4.0.0"
1123 | log-symbols "4.0.0"
1124 | minimatch "3.0.4"
1125 | ms "2.1.3"
1126 | nanoid "3.1.20"
1127 | serialize-javascript "5.0.1"
1128 | strip-json-comments "3.1.1"
1129 | supports-color "8.1.1"
1130 | which "2.0.2"
1131 | wide-align "1.1.3"
1132 | workerpool "6.1.0"
1133 | yargs "16.2.0"
1134 | yargs-parser "20.2.4"
1135 | yargs-unparser "2.0.0"
1136 |
1137 | mock-stdin@^1.0.0:
1138 | version "1.0.0"
1139 | resolved "https://registry.yarnpkg.com/mock-stdin/-/mock-stdin-1.0.0.tgz#efcfaf4b18077e14541742fd758b9cae4e5365ea"
1140 | integrity sha512-tukRdb9Beu27t6dN+XztSRHq9J0B/CoAOySGzHfn8UTfmqipA5yNT/sDUEyYdAV3Hpka6Wx6kOMxuObdOex60Q==
1141 |
1142 | ms@2.1.2:
1143 | version "2.1.2"
1144 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1145 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1146 |
1147 | ms@2.1.3, ms@^2.1.1:
1148 | version "2.1.3"
1149 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1150 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1151 |
1152 | nanoid@3.1.20:
1153 | version "3.1.20"
1154 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
1155 | integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
1156 |
1157 | natural-compare@^1.4.0:
1158 | version "1.4.0"
1159 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1160 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1161 |
1162 | nock@^13.0.0, nock@^13.2.4:
1163 | version "13.2.4"
1164 | resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.4.tgz#43a309d93143ee5cdcca91358614e7bde56d20e1"
1165 | integrity sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==
1166 | dependencies:
1167 | debug "^4.1.0"
1168 | json-stringify-safe "^5.0.1"
1169 | lodash.set "^4.3.2"
1170 | propagate "^2.0.0"
1171 |
1172 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1173 | version "3.0.0"
1174 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1175 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1176 |
1177 | once@^1.3.0:
1178 | version "1.4.0"
1179 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1180 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1181 | dependencies:
1182 | wrappy "1"
1183 |
1184 | optionator@^0.9.1:
1185 | version "0.9.1"
1186 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
1187 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
1188 | dependencies:
1189 | deep-is "^0.1.3"
1190 | fast-levenshtein "^2.0.6"
1191 | levn "^0.4.1"
1192 | prelude-ls "^1.2.1"
1193 | type-check "^0.4.0"
1194 | word-wrap "^1.2.3"
1195 |
1196 | p-limit@^3.0.2:
1197 | version "3.1.0"
1198 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1199 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1200 | dependencies:
1201 | yocto-queue "^0.1.0"
1202 |
1203 | p-locate@^5.0.0:
1204 | version "5.0.0"
1205 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1206 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1207 | dependencies:
1208 | p-limit "^3.0.2"
1209 |
1210 | parent-module@^1.0.0:
1211 | version "1.0.1"
1212 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1213 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1214 | dependencies:
1215 | callsites "^3.0.0"
1216 |
1217 | path-exists@^4.0.0:
1218 | version "4.0.0"
1219 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1220 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1221 |
1222 | path-is-absolute@^1.0.0:
1223 | version "1.0.1"
1224 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1225 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1226 |
1227 | path-key@^3.1.0:
1228 | version "3.1.1"
1229 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1230 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1231 |
1232 | path-parse@^1.0.6:
1233 | version "1.0.7"
1234 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1235 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1236 |
1237 | pathval@^1.1.1:
1238 | version "1.1.1"
1239 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
1240 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
1241 |
1242 | picomatch@^2.0.4, picomatch@^2.2.1:
1243 | version "2.2.2"
1244 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
1245 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
1246 |
1247 | prelude-ls@^1.2.1:
1248 | version "1.2.1"
1249 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
1250 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1251 |
1252 | progress@^2.0.0:
1253 | version "2.0.3"
1254 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1255 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
1256 |
1257 | propagate@^2.0.0:
1258 | version "2.0.1"
1259 | resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45"
1260 | integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==
1261 |
1262 | punycode@^2.1.0:
1263 | version "2.1.1"
1264 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1265 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1266 |
1267 | ramda@^0.26.1:
1268 | version "0.26.1"
1269 | resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
1270 | integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
1271 |
1272 | randombytes@^2.1.0:
1273 | version "2.1.0"
1274 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1275 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1276 | dependencies:
1277 | safe-buffer "^5.1.0"
1278 |
1279 | readdirp@~3.5.0:
1280 | version "3.5.0"
1281 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
1282 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
1283 | dependencies:
1284 | picomatch "^2.2.1"
1285 |
1286 | regexpp@^2.0.1:
1287 | version "2.0.1"
1288 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
1289 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
1290 |
1291 | regexpp@^3.1.0:
1292 | version "3.1.0"
1293 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
1294 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
1295 |
1296 | require-directory@^2.1.1:
1297 | version "2.1.1"
1298 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1299 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
1300 |
1301 | require-from-string@^2.0.2:
1302 | version "2.0.2"
1303 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
1304 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
1305 |
1306 | resolve-from@^4.0.0:
1307 | version "4.0.0"
1308 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1309 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1310 |
1311 | resolve@^1.8.1:
1312 | version "1.12.0"
1313 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
1314 | integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
1315 | dependencies:
1316 | path-parse "^1.0.6"
1317 |
1318 | ret@~0.1.10:
1319 | version "0.1.15"
1320 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
1321 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
1322 |
1323 | rimraf@^3.0.2:
1324 | version "3.0.2"
1325 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1326 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1327 | dependencies:
1328 | glob "^7.1.3"
1329 |
1330 | safe-buffer@^5.1.0:
1331 | version "5.2.1"
1332 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1333 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1334 |
1335 | safe-regex@^1.1.0:
1336 | version "1.1.0"
1337 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
1338 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
1339 | dependencies:
1340 | ret "~0.1.10"
1341 |
1342 | semver@^5.5.0:
1343 | version "5.7.1"
1344 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1345 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1346 |
1347 | semver@^6.3.0:
1348 | version "6.3.0"
1349 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1350 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1351 |
1352 | semver@^7.2.1:
1353 | version "7.3.2"
1354 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
1355 | integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
1356 |
1357 | serialize-javascript@5.0.1:
1358 | version "5.0.1"
1359 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
1360 | integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
1361 | dependencies:
1362 | randombytes "^2.1.0"
1363 |
1364 | shebang-command@^2.0.0:
1365 | version "2.0.0"
1366 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1367 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1368 | dependencies:
1369 | shebang-regex "^3.0.0"
1370 |
1371 | shebang-regex@^3.0.0:
1372 | version "3.0.0"
1373 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1374 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1375 |
1376 | slice-ansi@^4.0.0:
1377 | version "4.0.0"
1378 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
1379 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1380 | dependencies:
1381 | ansi-styles "^4.0.0"
1382 | astral-regex "^2.0.0"
1383 | is-fullwidth-code-point "^3.0.0"
1384 |
1385 | source-map-support@^0.5.17:
1386 | version "0.5.19"
1387 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1388 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
1389 | dependencies:
1390 | buffer-from "^1.0.0"
1391 | source-map "^0.6.0"
1392 |
1393 | source-map@^0.6.0:
1394 | version "0.6.1"
1395 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1396 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1397 |
1398 | sprintf-js@~1.0.2:
1399 | version "1.0.3"
1400 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1401 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
1402 |
1403 | stdout-stderr@^0.1.9:
1404 | version "0.1.9"
1405 | resolved "https://registry.yarnpkg.com/stdout-stderr/-/stdout-stderr-0.1.9.tgz#9b48ee04eff955ee07776e27125d5524d9d02f57"
1406 | integrity sha1-m0juBO/5Ve4Hd24nEl1VJNnQL1c=
1407 | dependencies:
1408 | debug "^3.1.0"
1409 | strip-ansi "^4.0.0"
1410 |
1411 | "string-width@^1.0.2 || 2":
1412 | version "2.1.1"
1413 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1414 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
1415 | dependencies:
1416 | is-fullwidth-code-point "^2.0.0"
1417 | strip-ansi "^4.0.0"
1418 |
1419 | string-width@^4.1.0, string-width@^4.2.0:
1420 | version "4.2.0"
1421 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
1422 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
1423 | dependencies:
1424 | emoji-regex "^8.0.0"
1425 | is-fullwidth-code-point "^3.0.0"
1426 | strip-ansi "^6.0.0"
1427 |
1428 | strip-ansi@*, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1429 | version "6.0.1"
1430 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1431 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1432 | dependencies:
1433 | ansi-regex "^5.0.1"
1434 |
1435 | strip-ansi@^4.0.0:
1436 | version "4.0.0"
1437 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1438 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
1439 | dependencies:
1440 | ansi-regex "^3.0.0"
1441 |
1442 | strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
1443 | version "3.1.1"
1444 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1445 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1446 |
1447 | supports-color@8.1.1:
1448 | version "8.1.1"
1449 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
1450 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
1451 | dependencies:
1452 | has-flag "^4.0.0"
1453 |
1454 | supports-color@^5.3.0:
1455 | version "5.5.0"
1456 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1457 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1458 | dependencies:
1459 | has-flag "^3.0.0"
1460 |
1461 | supports-color@^7.1.0:
1462 | version "7.2.0"
1463 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1464 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1465 | dependencies:
1466 | has-flag "^4.0.0"
1467 |
1468 | table@^6.0.9:
1469 | version "6.7.1"
1470 | resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
1471 | integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
1472 | dependencies:
1473 | ajv "^8.0.1"
1474 | lodash.clonedeep "^4.5.0"
1475 | lodash.truncate "^4.4.2"
1476 | slice-ansi "^4.0.0"
1477 | string-width "^4.2.0"
1478 | strip-ansi "^6.0.0"
1479 |
1480 | text-table@^0.2.0:
1481 | version "0.2.0"
1482 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1483 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1484 |
1485 | to-regex-range@^5.0.1:
1486 | version "5.0.1"
1487 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1488 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1489 | dependencies:
1490 | is-number "^7.0.0"
1491 |
1492 | ts-node@^9.1.1:
1493 | version "9.1.1"
1494 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
1495 | integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==
1496 | dependencies:
1497 | arg "^4.1.0"
1498 | create-require "^1.1.0"
1499 | diff "^4.0.1"
1500 | make-error "^1.1.1"
1501 | source-map-support "^0.5.17"
1502 | yn "3.1.1"
1503 |
1504 | tslib@^1.8.1:
1505 | version "1.9.3"
1506 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
1507 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
1508 |
1509 | tsutils@^3.17.1:
1510 | version "3.17.1"
1511 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
1512 | integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
1513 | dependencies:
1514 | tslib "^1.8.1"
1515 |
1516 | type-check@^0.4.0, type-check@~0.4.0:
1517 | version "0.4.0"
1518 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
1519 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1520 | dependencies:
1521 | prelude-ls "^1.2.1"
1522 |
1523 | type-detect@^4.0.0, type-detect@^4.0.5:
1524 | version "4.0.8"
1525 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
1526 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
1527 |
1528 | type-fest@^0.20.2:
1529 | version "0.20.2"
1530 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
1531 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1532 |
1533 | type-fest@^0.8.1:
1534 | version "0.8.1"
1535 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1536 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
1537 |
1538 | typescript@~3.9.10:
1539 | version "3.9.10"
1540 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
1541 | integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
1542 |
1543 | universalify@^0.1.0:
1544 | version "0.1.2"
1545 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
1546 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
1547 |
1548 | uri-js@^4.2.2:
1549 | version "4.2.2"
1550 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
1551 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
1552 | dependencies:
1553 | punycode "^2.1.0"
1554 |
1555 | v8-compile-cache@^2.0.3:
1556 | version "2.1.0"
1557 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
1558 | integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
1559 |
1560 | which@2.0.2, which@^2.0.1:
1561 | version "2.0.2"
1562 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1563 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1564 | dependencies:
1565 | isexe "^2.0.0"
1566 |
1567 | wide-align@1.1.3:
1568 | version "1.1.3"
1569 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
1570 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
1571 | dependencies:
1572 | string-width "^1.0.2 || 2"
1573 |
1574 | word-wrap@^1.2.3:
1575 | version "1.2.3"
1576 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1577 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1578 |
1579 | workerpool@6.1.0:
1580 | version "6.1.0"
1581 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"
1582 | integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==
1583 |
1584 | wrap-ansi@^7.0.0:
1585 | version "7.0.0"
1586 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1587 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1588 | dependencies:
1589 | ansi-styles "^4.0.0"
1590 | string-width "^4.1.0"
1591 | strip-ansi "^6.0.0"
1592 |
1593 | wrappy@1:
1594 | version "1.0.2"
1595 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1596 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1597 |
1598 | y18n@^5.0.5:
1599 | version "5.0.5"
1600 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18"
1601 | integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
1602 |
1603 | yargs-parser@20.2.4:
1604 | version "20.2.4"
1605 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
1606 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
1607 |
1608 | yargs-parser@^20.2.2:
1609 | version "20.2.6"
1610 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20"
1611 | integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==
1612 |
1613 | yargs-unparser@2.0.0:
1614 | version "2.0.0"
1615 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
1616 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
1617 | dependencies:
1618 | camelcase "^6.0.0"
1619 | decamelize "^4.0.0"
1620 | flat "^5.0.2"
1621 | is-plain-obj "^2.1.0"
1622 |
1623 | yargs@16.2.0:
1624 | version "16.2.0"
1625 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
1626 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
1627 | dependencies:
1628 | cliui "^7.0.2"
1629 | escalade "^3.1.1"
1630 | get-caller-file "^2.0.5"
1631 | require-directory "^2.1.1"
1632 | string-width "^4.2.0"
1633 | y18n "^5.0.5"
1634 | yargs-parser "^20.2.2"
1635 |
1636 | yn@3.1.1:
1637 | version "3.1.1"
1638 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
1639 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
1640 |
1641 | yocto-queue@^0.1.0:
1642 | version "0.1.0"
1643 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
1644 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1645 |
--------------------------------------------------------------------------------