diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index fc2eff3a7..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,45 +0,0 @@ -workflows: - version: 2 - node-multi-build: - jobs: - - node-v6 - - node-v8 - - node-v10 - -version: 2 -jobs: - node-base: &node-base - docker: - - image: node - steps: - - checkout - - restore_cache: - name: Restore Yarn Package Cache - keys: - - yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} - - yarn-packages-{{ .Branch }} - - yarn-packages-master - - yarn-packages- - - run: - name: Install dependencies - command: yarn --frozen-lockfile - - run: - name: Test - command: yarn test-ci - - save_cache: - name: Save Yarn Package Cache - key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} - paths: - - node_modules/ - node-v6: - <<: *node-base - docker: - - image: node:6 - node-v8: - <<: *node-base - docker: - - image: node:8 - node-v10: - <<: *node-base - docker: - - image: node:10 diff --git a/.editorconfig b/.editorconfig index 443b276cc..597e75449 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -[**.js] +[*.{js,css}] indent_style = space indent_size = 2 trim_trailing_whitespace = true diff --git a/.eslintrc b/.eslintrc index 10e1dc860..2bf300124 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,8 +1,8 @@ { "root": true, - "parser": "babel-eslint", "parserOptions": { - "sourceType": "module" + "sourceType": "module", + "ecmaVersion": 2020 }, "rules": { "no-var": 2, @@ -26,10 +26,7 @@ "no-shadow": 0, "no-undef": 2 }, - "extends": [ - "eslint:recommended", - "prettier" - ], + "extends": ["eslint:recommended", "prettier"], "env": { "node": true, "es6": true diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..bb236c12d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/en/code-security/dependabot + +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + - package-ecosystem: npm + directory: / + schedule: + interval: weekly diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..db650acb4 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: "CodeQL" + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + schedule: + - cron: '0 0 1 * *' + workflow_dispatch: + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript-typescript' ] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 000000000..2d8e7a62f --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,29 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - run: npm run test-ci diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..d4a43dd13 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npm run pre-commit diff --git a/.npmignore b/.npmignore index 7895e9330..7c3ebf56a 100644 --- a/.npmignore +++ b/.npmignore @@ -7,3 +7,9 @@ circle.yml coverage __tests__ +.circleci +.github +.prettierignore +.prettierrc +CODE_OF_CONDUCT.md +ISSUE_TEMPLATE.md diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..d826961de --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +__tests__/fixture diff --git a/.prettierrc b/.prettierrc index 544138be4..b0a179d48 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,5 @@ { - "singleQuote": true + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e3bbc621..dd16f8756 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,316 @@ -# Change Log +# Changelog All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [14.0.3](https://github.com/documentationjs/documentation/compare/v14.0.1...v14.0.3) (2024-01-30) + + +### Bug Fixes + +* **exported:** respect `parse-extension` & `require-extension` ([#1484](https://github.com/documentationjs/documentation/issues/1484)) ([798fa10](https://github.com/documentationjs/documentation/commit/798fa10595d7523032ac187ae9c8aa943c15e8da)), closes [#1272](https://github.com/documentationjs/documentation/issues/1272) [#1258](https://github.com/documentationjs/documentation/issues/1258) +* fix GFM markdown output ([#1553](https://github.com/documentationjs/documentation/issues/1553)) ([1cc2f98](https://github.com/documentationjs/documentation/commit/1cc2f984315fc5aaf898c64d8e1eb2b4e70cd482)) + +### [14.0.2](https://github.com/documentationjs/documentation/compare/v14.0.1...v14.0.2) (2023-05-19) + + +### Bug Fixes + +* **exported:** respect `parse-extension` & `require-extension` ([#1484](https://github.com/documentationjs/documentation/issues/1484)) ([798fa10](https://github.com/documentationjs/documentation/commit/798fa10595d7523032ac187ae9c8aa943c15e8da)), closes [#1272](https://github.com/documentationjs/documentation/issues/1272) [#1258](https://github.com/documentationjs/documentation/issues/1258) + +## [14.0.1](https://github.com/documentationjs/documentation/compare/v14.0.0...v14.0.1) (2022-12-14) + +### Improvements +* chore: upgrade git-url-parse to 13.1.0 to fix vulnerabilities [#1565](https://github.com/documentationjs/documentation/pull/1565) + +## [14.0.0](https://github.com/documentationjs/documentation/compare/v14.0.0-alpha.1...v14.0.0) (2022-08-19) + +## [14.0.0-alpha.1](https://github.com/documentationjs/documentation/compare/v14.0.0-alpha.0...v14.0.0-alpha.1) (2022-08-07) + + +### Features + +* :sparkles: update Babel, copy list of plugins from Prettier ([3f187d7](https://github.com/documentationjs/documentation/commit/3f187d73132c6667a9140bd491c5f703c1f37c40)) + +## [14.0.0-alpha.0](https://github.com/documentationjs/documentation/compare/v13.2.5...v14.0.0-alpha.0) (2022-08-05) + + +### ⚠ BREAKING CHANGES + +* all Extensions should contains '.' so that mean if you have just 'ts' then need to convert to '.ts' +* external parameter was removed +Migration plan propose to move all external resources to input usages +Motivation: packages has many inputs which describe in package.json +so that mean need each time to parse all package.json of external resources to understand which entry point need to pick. +But it is base on guesses because entry point may could not contains a documentation and the best way to handle it manually. +* The serve parameter was removed, you can use any other tools which could be refresh and store your html site +The private parameter has removed, use a access +* documentation.js will now require node 14 or later. + +### Bug Fixes + +* add micromark dependencies fixed [#1381](https://github.com/documentationjs/documentation/issues/1381) ([3ba8165](https://github.com/documentationjs/documentation/commit/3ba81659d7db5d9393fa083287d91db93d6aab5e)) +* add TS and TSX as default extensions fixed [#1377](https://github.com/documentationjs/documentation/issues/1377) ([f0cb1c0](https://github.com/documentationjs/documentation/commit/f0cb1c0bb1d97228c7baab453e50e5dbe283ea46)) +* external was removed as prefer of input usages ([e3c59d7](https://github.com/documentationjs/documentation/commit/e3c59d77e4e3cf6e5fabab7c0d853a06a77f6288)) +* html report, it is return html if output is not defined ([0975871](https://github.com/documentationjs/documentation/commit/0975871b34b8cc0af74e0aebb43f2727e0ab9960)) +* remove private parameter, use access (BREAKING CHANGES) ([874069c](https://github.com/documentationjs/documentation/commit/874069c0b3647dad413667f61d05f6d39992995d)) +* The server parameter deprecated and will be remove in next Major version fixed [#1413](https://github.com/documentationjs/documentation/issues/1413) ([810e08b](https://github.com/documentationjs/documentation/commit/810e08b6fdb1076a1758bff831a9f42890f0f25f)) +* use process.cwd vs `.` which can fail ([4cc70a5](https://github.com/documentationjs/documentation/commit/4cc70a5aed0c233cdcc72077733f9da8450be386)) + + +* replace module-deps-sortable on own implementation to control how parse files ([abb781a](https://github.com/documentationjs/documentation/commit/abb781a69ac69423da11346f62d7064382bb7b74)) +* Update Node minimum version to 14 ([fc0bb3c](https://github.com/documentationjs/documentation/commit/fc0bb3cd885b9577e6f1f6935e15d4ec24f89114)) + +### [13.2.5](https://github.com/documentationjs/documentation/compare/v13.2.4...v13.2.5) (2021-04-24) + + +### Bug Fixes + +* add gfm format for remark fixed [#1374](https://github.com/documentationjs/documentation/issues/1374) ([#1375](https://github.com/documentationjs/documentation/issues/1375)) ([6b5bc25](https://github.com/documentationjs/documentation/commit/6b5bc2548db23fdab3fd8d29ac1aeedea7ad3a47)) +* jsx should be included for tsx files but not for ts fixed [#1359](https://github.com/documentationjs/documentation/issues/1359) ([#1373](https://github.com/documentationjs/documentation/issues/1373)) ([00d434f](https://github.com/documentationjs/documentation/commit/00d434f8576969b00d53a20efebb52a880acf350)) + +### [13.2.4](https://github.com/documentationjs/documentation/compare/v13.2.3...v13.2.4) (2021-04-21) + + +### Bug Fixes + +* add support Vue 3 fixed [#1339](https://github.com/documentationjs/documentation/issues/1339) ([#1372](https://github.com/documentationjs/documentation/issues/1372)) ([cd7d123](https://github.com/documentationjs/documentation/commit/cd7d12366cc499ae8d40a64905354c3479f802f6)) + +### [13.2.3](https://github.com/documentationjs/documentation/compare/v13.2.2...v13.2.3) (2021-04-20) + +### [13.2.2](https://github.com/documentationjs/documentation/compare/v13.2.1...v13.2.2) (2021-04-20) + + +### Bug Fixes + +* [@see](https://github.com/see) tags incorrectly formatted in markdown output fixed [#1337](https://github.com/documentationjs/documentation/issues/1337) ([5d8d450](https://github.com/documentationjs/documentation/commit/5d8d4504d52a5bb0a0432bf399bbd82d9e5ea7fc)) + +### [13.2.1](https://github.com/documentationjs/documentation/compare/v13.2.0...v13.2.1) (2021-04-06) + +## [13.2.0](https://github.com/documentationjs/documentation/compare/v13.1.1...v13.2.0) (2021-03-13) + + +### Features + +* Support import.meta ([d449e7c](https://github.com/documentationjs/documentation/commit/d449e7c3ca0abb7379ea4159b0ef0281059077eb)), closes [#1345](https://github.com/documentationjs/documentation/issues/1345) + +### [13.1.1](https://github.com/documentationjs/documentation/compare/v13.1.0...v13.1.1) (2021-01-19) + +## [13.1.0](https://github.com/documentationjs/documentation/compare/v13.0.2...v13.1.0) (2020-10-24) + + +### Features + +* Add event members to md output ([#1336](https://github.com/documentationjs/documentation/issues/1336)) ([bc3233f](https://github.com/documentationjs/documentation/commit/bc3233fe7e414e65756cf50450ebad069e37506a)) + +### [13.0.2](https://github.com/documentationjs/documentation/compare/v13.0.1...v13.0.2) (2020-07-02) + + +### Bug Fixes + +* Additional safety around detecting functions in HTML output ([a8b6ce1](https://github.com/documentationjs/documentation/commit/a8b6ce144ea380ad21ba99f03574f6258be10666)) + +### [13.0.1](https://github.com/documentationjs/documentation/compare/v13.0.0...v13.0.1) (2020-06-04) + + +### Bug Fixes + +* 🐛 Error with flow opaque type and readme command ([78db9a4](https://github.com/documentationjs/documentation/commit/78db9a443a65bbe8ff202083351655e0cfa60004)), closes [#1322](https://github.com/documentationjs/documentation/issues/1322) +* 🐛 Fixes an issue when using object spread and $Exact ([106945c](https://github.com/documentationjs/documentation/commit/106945c6354f0b70335adf737c7b7fa296952cc3)), closes [#1324](https://github.com/documentationjs/documentation/issues/1324) + + +# [13.0.0](https://github.com/documentationjs/documentation/compare/v12.3.0...v13.0.0) (2020-05-09) + + +### Chores + +* Update Node minimum version to 10 ([45a5257](https://github.com/documentationjs/documentation/commit/45a5257)) + + +### BREAKING CHANGES + +* documentation.js will now require node 10 or later. + + + + +# [12.3.0](https://github.com/documentationjs/documentation/compare/v12.2.0...v12.3.0) (2020-04-07) + + +### Features + +* upgrade babel dependencies ([d0ec029](https://github.com/documentationjs/documentation/commit/d0ec029)) + + + + +# [12.2.0](https://github.com/documentationjs/documentation/compare/v12.1.4...v12.2.0) (2020-03-31) + + +### Features + +* support for the [@see](https://github.com/see) tag in Markdown & HTML ([48bb7a2](https://github.com/documentationjs/documentation/commit/48bb7a2)) + + + + +## [12.1.4](https://github.com/documentationjs/documentation/compare/v12.1.3...v12.1.4) (2019-11-15) + + + + +## [12.1.3](https://github.com/documentationjs/documentation/compare/v12.1.2...v12.1.3) (2019-11-04) + + +### Bug Fixes + +* upgrade git-url-parse to fix a parsing issue ([#1296](https://github.com/documentationjs/documentation/issues/1296)) ([344e804](https://github.com/documentationjs/documentation/commit/344e804)) + + + + +## [12.1.2](https://github.com/documentationjs/documentation/compare/v12.1.1...v12.1.2) (2019-09-09) + + +### Bug Fixes + +* check for empty diff ([#1273](https://github.com/documentationjs/documentation/issues/1273)) ([3e0958b](https://github.com/documentationjs/documentation/commit/3e0958b)) + + + + +## [12.1.1](https://github.com/documentationjs/documentation/compare/v12.1.0...v12.1.1) (2019-08-01) + + +### Bug Fixes + +* Git submodule support for repo names with a dot ([#1271](https://github.com/documentationjs/documentation/issues/1271)) ([27a29be](https://github.com/documentationjs/documentation/commit/27a29be)) + + + + +# [12.1.0](https://github.com/documentationjs/documentation/compare/v12.0.3...v12.1.0) (2019-07-31) + + +### Features + +* Add git submodules support to github linking ([#1270](https://github.com/documentationjs/documentation/issues/1270)) ([ec36b41](https://github.com/documentationjs/documentation/commit/ec36b41)) + + + + +## [12.0.3](https://github.com/documentationjs/documentation/compare/v12.0.2...v12.0.3) (2019-07-22) + + +### Bug Fixes + +* Allow skipped array arguments in destructuring. Fixes [#1247](https://github.com/documentationjs/documentation/issues/1247) ([#1266](https://github.com/documentationjs/documentation/issues/1266)) ([f9039e9](https://github.com/documentationjs/documentation/commit/f9039e9)) + + + + +## [12.0.2](https://github.com/documentationjs/documentation/compare/v12.0.1...v12.0.2) (2019-07-16) + + + + +## [12.0.1](https://github.com/documentationjs/documentation/compare/v12.0.0...v12.0.1) (2019-07-10) + + +### Bug Fixes + +* Crash when called with no inputs. yargs now variadic positional arguments undefined instead of [] ([821a15e](https://github.com/documentationjs/documentation/commit/821a15e)) + + + + +# [12.0.0](https://github.com/documentationjs/documentation/compare/v11.0.1...v12.0.0) (2019-07-10) + + +* Formatted with Prettier ([8f36e75](https://github.com/documentationjs/documentation/commit/8f36e75)) + + +### BREAKING CHANGES + +* The next release will require Node 8 + + + + +## [11.0.1](https://github.com/documentationjs/documentation/compare/v11.0.0...v11.0.1) (2019-06-12) + + +### Bug Fixes + +* toc with children getting displayed as "note" ([#1253](https://github.com/documentationjs/documentation/issues/1253)) ([14298bb](https://github.com/documentationjs/documentation/commit/14298bb)) + + + + +# [11.0.0](https://github.com/documentationjs/documentation/compare/v10.1.0...v11.0.0) (2019-05-08) + + +### Bug Fixes + +* Fix parsing of optional parameters with annotations ([ca17de5](https://github.com/documentationjs/documentation/commit/ca17de5)) + + +### Features + +* Enable all parser plugins ([fa1b0b5](https://github.com/documentationjs/documentation/commit/fa1b0b5)) +* Support exportNamespaceFrom in parser ([8fa141d](https://github.com/documentationjs/documentation/commit/8fa141d)) + + +### BREAKING CHANGES + +* this removes support for legacy decorators, because +in one place we had legacy and in another we didn't. + + + + +# [10.1.0](https://github.com/documentationjs/documentation/compare/v10.0.0...v10.1.0) (2019-04-25) + + +### Features + +* TypeScript support & inference ([3773e02](https://github.com/documentationjs/documentation/commit/3773e02)) + + + + +# [10.0.0](https://github.com/documentationjs/documentation/compare/v10.0.0-alpha.0...v10.0.0) (2019-04-18) + + +### Features + +* Add flow inference for generators ([7947e97](https://github.com/documentationjs/documentation/commit/7947e97)) +* Support async functions ([d31c3b7](https://github.com/documentationjs/documentation/commit/d31c3b7)) +* Support classPrivateProperties in parser ([64ef671](https://github.com/documentationjs/documentation/commit/64ef671)), closes [#1216](https://github.com/documentationjs/documentation/issues/1216) +* Support generator functions ([8e3cd47](https://github.com/documentationjs/documentation/commit/8e3cd47)) + + + + +# [10.0.0-alpha.0](https://github.com/documentationjs/documentation/compare/v9.3.1...v10.0.0-alpha.0) (2019-03-12) + + +### Features + +* Support custom babel config ([#1205](https://github.com/documentationjs/documentation/issues/1205)) ([746d0a9](https://github.com/documentationjs/documentation/commit/746d0a9)) + + +### BREAKING CHANGES + +* this may change babel configuration loading, and is a +major change to the documentation.js approach to Babel. + + + + +## [9.3.1](https://github.com/documentationjs/documentation/compare/v9.3.0...v9.3.1) (2019-03-12) + + + # [9.3.0](https://github.com/documentationjs/documentation/compare/v9.2.1...v9.3.0) (2019-02-27) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 65c05c574..c06638aef 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,22 +1,76 @@ -# Contributor Code of Conduct +# Contributor Covenant Code of Conduct -As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. +## Our Pledge -We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality. +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery -* Personal attacks -* Trolling or insulting/derogatory comments +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment -* Publishing other's private information, such as physical or electronic addresses, without explicit permission -* Other unethical or unprofessional conduct. +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when +an individual is representing the project or its community in public spaces. +Examples of representing a project or community include using an official +project e-mail address, posting via an official social media account, or acting +as an appointed representative at an online or offline event. Representation of +a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team. All complaints will be reviewed and +investigated and will result in a response that is deemed necessary and appropriate +to the circumstances. The project team is obligated to maintain confidentiality with +regard to the reporter of an incident. Further details of specific enforcement +policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team. +## Attribution -This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. +[homepage]: https://www.contributor-covenant.org -This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) \ No newline at end of file +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ba29318f7..2169a477e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,8 +38,7 @@ before merge. Release process: * Confirm that `master` passes CI tests -* Bump version in `package.json` -* Run `npm run changelog` -* Add updated CHANGELOG.md to master +* Run `npm run release` or in case it's a prerelease you'd run i.e. `npm run release -- --prerelease alpha` + * It will automatically update the version in package.json and make a git tag. * Push commits * npm publish diff --git a/LICENSE b/LICENSE index e9b9b142d..4a5ddc55b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ ISC License -Copyright (c) 2015, documentationjs <> +Copyright (c) 2025, documentationjs <> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above @@ -38,3 +38,15 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +Contains sections of prettier + +Copyright © James Long and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 05540f054..90f636934 100644 --- a/README.md +++ b/README.md @@ -9,33 +9,32 @@ [![Circle CI](https://circleci.com/gh/documentationjs/documentation/tree/master.svg?style=shield)](https://circleci.com/gh/documentationjs/documentation/tree/master) [![npm version](https://badge.fury.io/js/documentation.svg)](http://badge.fury.io/js/documentation) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/documentationjs/documentation?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -[![David](https://david-dm.org/documentationjs/documentation.svg)](https://david-dm.org/documentationjs/documentation) [![Inline docs](http://inch-ci.org/github/documentationjs/documentation.svg?branch=master&style=flat-square)](http://inch-ci.org/github/documentationjs/documentation) [:date: Current maintenance status](https://github.com/documentationjs/documentation/wiki/Current-maintenance-status) -* Supports modern JavaScript: ES5, ES2017, JSX, Vue and [Flow](https://flow.org/) type annotations. -* Infers parameters, types, membership, and more. Write less documentation: let the computer write it for you. -* Integrates with GitHub to link directly from documentation to the code it refers to. -* Customizable output: HTML, JSON, Markdown, and more +- Supports modern JavaScript: ES5, ES2017, JSX, Vue and [Flow](https://flow.org/) type annotations. +- Infers parameters, types, membership, and more. Write less documentation: let the computer write it for you. +- Integrates with GitHub to link directly from documentation to the code it refers to. +- Customizable output: HTML, JSON, Markdown, and more ## Examples -- [HTML output with default template](https://documentation.js.org/html-example/) -- [Markdown](https://github.com/documentationjs/documentation/blob/master/docs/NODE_API.md) -- [JSON](https://documentation.js.org/html-example/index.json) +- [HTML output with default template](https://documentation.js.org/html-example/) +- [Markdown](https://github.com/documentationjs/documentation/blob/master/docs/NODE_API.md) +- [JSON](https://documentation.js.org/html-example/index.json) ## Documentation -- [Getting Started](docs/GETTING_STARTED.md): start here -- [Usage](docs/USAGE.md): how to use documentation.js -- [Recipes](docs/RECIPES.md): tricks for writing effective JSDoc docs -- [Node API](docs/NODE_API.md): documentation.js's self-generated documentation -- [Configuring documentation.js](docs/CONFIG.md) -- [FAQ](docs/FAQ.md) -- [Troubleshooting](docs/TROUBLESHOOTING.md) -- [Theming](docs/THEMING.md): tips for theming documentation output in HTML -- [See also](https://github.com/documentationjs/documentation/wiki/See-also): a list of projects similar to documentation.js +- [Getting Started](docs/GETTING_STARTED.md): start here +- [Usage](docs/USAGE.md): how to use documentation.js +- [Recipes](docs/RECIPES.md): tricks for writing effective JSDoc docs +- [Node API](docs/NODE_API.md): documentation.js's self-generated documentation +- [Configuring documentation.js](docs/CONFIG.md) +- [FAQ](docs/FAQ.md) +- [Troubleshooting](docs/TROUBLESHOOTING.md) +- [Theming](docs/THEMING.md): tips for theming documentation output in HTML +- [See also](https://github.com/documentationjs/documentation/wiki/See-also): a list of projects similar to documentation.js ## User Guide @@ -46,7 +45,7 @@ $ npm install -g documentation ``` This installs a command called `documentation` in your path, that you can -point at [JSDoc](http://usejsdoc.org/)-annotated source code to generate +point at [JSDoc](https://jsdoc.app/about-getting-started.html)-annotated source code to generate human-readable documentation. First, run `documentation` with the `--help` option for help: @@ -56,18 +55,12 @@ Usage: # generate markdown docs for index.js and files it references documentation build index.js -f md -# generate html docs for all files in src -documentation build src/** -f html -o docs +# generate html docs for all files in src, and include links to source files in github +documentation build src/** -f html --github -o docs # document index.js, ignoring any files it requires or imports documentation build index.js -f md --shallow -# build and serve HTML docs for app.js -documentation serve app.js - -# build, serve, and live-update HTML docs for app.js -documentation serve --watch app.js - # validate JSDoc syntax in util.js documentation lint util.js @@ -77,8 +70,10 @@ documentation readme index.js --section=API # build docs for all values exported by index.js documentation build --document-exported index.js +# build html docs for a TypeScript project +documentation build index.ts --parse-extension ts -f html -o docs + Commands: - serve [input..] generate, update, and display HTML documentation build [input..] build documentation lint [input..] check for common style and uniformity mistakes readme [input..] inject documentation into your README.md @@ -94,9 +89,9 @@ _We have plenty of [issues](https://github.com/documentationjs/documentation/issues) that we'd love help with._ -- Robust and complete `JSDoc` support, including typedefs. -- Strong support for HTML and Markdown output -- Documentation coverage, statistics, and validation +- Robust and complete `JSDoc` support, including typedefs. +- Strong support for HTML and Markdown output +- Documentation coverage, statistics, and validation documentation is an OPEN Open Source Project. This means that: diff --git a/__tests__/__snapshots__/bin-readme.js.snap b/__tests__/__snapshots__/bin-readme.js.snap index f82e9545f..6ce3ce9da 100644 --- a/__tests__/__snapshots__/bin-readme.js.snap +++ b/__tests__/__snapshots__/bin-readme.js.snap @@ -9,10 +9,10 @@ exports[`readme autodetection of different filenames updates readme.markdown 1`] ### Table of Contents -- [foo](#foo) - - [Parameters](#parameters) -- [bar](#bar) - - [Parameters](#parameters-1) +* [foo](#foo) + * [Parameters](#parameters) +* [bar](#bar) + * [Parameters](#parameters-1) ## foo @@ -20,9 +20,9 @@ A function with documentation. ### Parameters -- \`a\` {string} blah +* \`a\` {string} blah -Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** answer +Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\\\_Objects/Number)** answer ## bar @@ -30,7 +30,7 @@ A second function with docs ### Parameters -- \`b\` +* \`b\` # Another section " @@ -45,10 +45,10 @@ exports[`readme command --readme-file 1`] = ` ### Table of Contents -- [foo](#foo) - - [Parameters](#parameters) -- [bar](#bar) - - [Parameters](#parameters-1) +* [foo](#foo) + * [Parameters](#parameters) +* [bar](#bar) + * [Parameters](#parameters-1) ## foo @@ -56,9 +56,9 @@ A function with documentation. ### Parameters -- \`a\` {string} blah +* \`a\` {string} blah -Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** answer +Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\\\_Objects/Number)** answer ## bar @@ -66,7 +66,7 @@ A second function with docs ### Parameters -- \`b\` +* \`b\` # Another section " @@ -81,10 +81,10 @@ exports[`readme command updates README.md 1`] = ` ### Table of Contents -- [foo](#foo) - - [Parameters](#parameters) -- [bar](#bar) - - [Parameters](#parameters-1) +* [foo](#foo) + * [Parameters](#parameters) +* [bar](#bar) + * [Parameters](#parameters-1) ## foo @@ -92,9 +92,9 @@ A function with documentation. ### Parameters -- \`a\` {string} blah +* \`a\` {string} blah -Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** answer +Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\\\_Objects/Number)** answer ## bar @@ -102,7 +102,7 @@ A second function with docs ### Parameters -- \`b\` +* \`b\` # Another section " diff --git a/__tests__/__snapshots__/bin.js.snap b/__tests__/__snapshots__/bin.js.snap index 7d7219631..ca6d4bbb8 100644 --- a/__tests__/__snapshots__/bin.js.snap +++ b/__tests__/__snapshots__/bin.js.snap @@ -2,16 +2,16 @@ exports[`--config 1`] = ` " - + - + documentation | Documentation - - - - - + + + + +
@@ -23,6 +23,9 @@ exports[`--config 1`] = ` placeholder='Filter' id='filter-input' class='col12 block input' + spellcheck='false' + autocapitalize='off' + autocorrect='off' type='text' />
+ + + + +
  • + Foobar + + + +
  • @@ -219,6 +250,16 @@ exports[`--config 1`] = ` + +
  • + tableObj + + + +
  • +
    @@ -229,54 +270,16 @@ exports[`--config 1`] = `
    -
    -
    - -

    - Highlighted section -

    - - -

    The public key is a base64 encoded string of a protobuf containing an RSA DER -buffer. This uses a node buffer to pass the base64 encoded public key protobuf -to the multihash for ID generation.

    -
    var PeerId = require('peer-id')
    -
    -PeerId.create({ bits: 1024 }, (err, id) => {
    -  console.log(JSON.stringify(id.toJSON(), null, 2)
    -})
    -
    {
    -  \\"id\\": \\"Qma9T5YraSnpRDZqRR4krcSJabThc8nwZuJV3LercPHufi\\",
    -  \\"privKey\\": \\"CAAS4AQwggJcAgEAAoGBAMBgbIqyOL26oV3nGPBYrdpbv..\\",
    -  \\"pubKey\\": \\"CAASogEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMBgbIqyOL26oV3nGPBYrdpbvzCY...\\"
    -}
    -
    +
    - -
    -
    - -
    +

    + Highlighted section +

    -
    - -

    - Highlighted section -

    - - -
    - - -

    The public key is a base64 encoded string of a protobuf containing an RSA DER +

    The public key is a base64 encoded string of a protobuf containing an RSA DER buffer. This uses a node buffer to pass the base64 encoded public key protobuf to the multihash for ID generation.

    -
    var PeerId = require('peer-id')
    -
    -PeerId.create({ bits: 1024 }, (err, id) => {
    -  console.log(JSON.stringify(id.toJSON(), null, 2)
    -})
    {
       \\"id\\": \\"Qma9T5YraSnpRDZqRR4krcSJabThc8nwZuJV3LercPHufi\\",
       \\"privKey\\": \\"CAAS4AQwggJcAgEAAoGBAMBgbIqyOL26oV3nGPBYrdpbv..\\",
    @@ -284,35 +287,9 @@ PeerId.create({ bits: 
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - +
    +
    @@ -330,10 +307,7 @@ PeerId.create({ bits: Creates a new Klass

    - -
    new Klass(foo: any)
    -

    @@ -375,6 +349,8 @@ PeerId.create({ bits: Static Members

    @@ -394,10 +370,7 @@ PeerId.create({ bits: Klass This is a [link to something that does not exist]DoesNot

    - -
    isClass(other: Object, also: any): boolean
    - @@ -452,6 +425,10 @@ This is a [link to something that does not exist]DoesNot
    @@ -472,10 +449,7 @@ This is a [link to something that does not exist]DoesNotA function that triggers the case where the autolinker doesn't find the referenced class type

    - -
    - @@ -522,6 +496,10 @@ the referenced class type

    + + + +
    @@ -541,10 +519,7 @@ the referenced class type

    This method takes a Buffer object that will be linked to nodejs.org

    - -
    isBuffer(buf: (Buffer | string), size: number): boolean
    - @@ -601,6 +576,10 @@ the referenced class type

    + + + + @@ -620,10 +599,7 @@ the referenced class type

    This method takes an array of buffers and counts them

    - -
    isArrayOfBuffers(buffers: Array<Buffer>): number
    - @@ -665,11 +641,13 @@ the referenced class type

    + +
    Example
    -
    var k = new Klass();
    -k.isArrayOfBuffers();
    +
    var k = new Klass();
    +k.isArrayOfBuffers();
    @@ -678,6 +656,8 @@ k.isArrayOfBuffers(); + + @@ -697,10 +677,7 @@ k.isArrayOfBuffers();

    A magic number that identifies this Klass.

    - -
    MAGIC_NUMBER
    - @@ -721,6 +698,10 @@ k.isArrayOfBuffers(); + + + + @@ -753,10 +734,7 @@ k.isArrayOfBuffers();

    Get this Klass's foo

    - -
    getFoo(): Number
    - @@ -784,11 +762,13 @@ k.isArrayOfBuffers(); + +
    Example

    this shows you how to getFoo

    -
    var x = foo.getFoo();
    +
    var x = foo.getFoo();
    @@ -797,6 +777,8 @@ k.isArrayOfBuffers(); + + @@ -816,10 +798,7 @@ k.isArrayOfBuffers();

    A function with an options parameter

    - -
    withOptions(options: Object, otherOptions: number?)
    - @@ -898,6 +877,10 @@ k.isArrayOfBuffers(); + + + + @@ -917,10 +900,7 @@ k.isArrayOfBuffers();

    A function with a deep options parameter

    - -
    withDeepOptions(options: Object)
    - @@ -1001,6 +981,10 @@ k.isArrayOfBuffers(); + + + + @@ -1011,6 +995,8 @@ k.isArrayOfBuffers(); + +
    Events
    @@ -1028,10 +1014,7 @@ k.isArrayOfBuffers();

    Klass event

    - -
    event
    - @@ -1052,6 +1035,10 @@ k.isArrayOfBuffers(); + + + + @@ -1067,6 +1054,7 @@ k.isArrayOfBuffers(); +
    @@ -1084,10 +1072,7 @@ k.isArrayOfBuffers();

    a typedef with nested properties

    - -
    CustomError
    - @@ -1139,8 +1124,13 @@ k.isArrayOfBuffers(); + + + +
    +
    @@ -1160,10 +1150,7 @@ k.isArrayOfBuffers(); a klass instance multiword, like a klass

    - -
    bar(): Klass
    - @@ -1197,8 +1184,13 @@ like a klass

    + + + +
    +
    @@ -1206,8 +1198,8 @@ like a klass

    -

    - bar +

    + bar2

    @@ -1216,10 +1208,7 @@ like a klass

    Rest property function

    - - -
    bar(toys: ...Number): undefined
    - +
    bar2(toys: ...Number): undefined
    @@ -1266,8 +1255,13 @@ like a klass

    + + + +
    +
    @@ -1275,8 +1269,8 @@ like a klass

    -

    - bar +

    + bar3

    @@ -1287,10 +1281,7 @@ like a klass

    a klass instance multiword, like a klass. This needs a number input.

    - - -
    bar(): undefined
    - +
    bar3(): undefined
    @@ -1324,8 +1315,13 @@ like a klass. This needs a +
    @@ -1343,10 +1339,7 @@ like a klass. This needs a This is Foo

    - -
    new Foo()
    - @@ -1367,6 +1360,8 @@ like a
    klass. This needs a klass. This needs a This is bar

    - -
    bar
    - @@ -1411,6 +1403,10 @@ like a
    klass. This needs a klass. This needs a +
    @@ -1435,20 +1434,18 @@ like a klass. This needs a -

    - customStreams +

    + Foobar

    -

    I am the container of stream types

    +

    This is Foobar +must have a distinct id from Foo.bar

    - - -
    customStreams
    - +
    new Foobar()
    @@ -1470,14 +1467,18 @@ like a
    klass. This needs a Static Members
    + + + + +
    Instance Members
    -
    + - - - - - -" -`; + +
    -exports[`accepts config file 1`] = ` -Array [ - Object { - "augments": Array [], - "context": Object { - "file": "[path]", - "loc": Object { - "end": Object { - "column": 2, - "line": 13, - }, - "start": Object { - "column": 0, - "line": 11, - }, - }, - }, - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "Bananas are yellow", - }, - ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "examples": Array [], - "kind": "function", + +
    + +

    + customStreams +

    + + +
    + + +

    I am the container of stream types

    + +
    customStreams
    + + + + + + + + + + + + + + + + + + + + + + + +
    Static Members
    +
    + +
    +
    +
    + + new passthrough() +
    +
    +
    +
    + + + +

    I am a passthrough stream that belongs to customStreams

    + +
    new passthrough()
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + + + +
    + + + + +
    + + +
    + +

    + tableObj +

    + + +
    + + + + + + + + + + + + + + + + + + + + + + +
    Col 1Col 2Col 3
    Dat 1Dat 2Dat 3
    Dat 4Dat 5Dat 6
    + +
    tableObj
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    + + + + + +" +`; + +exports[`accepts config file 1`] = ` +Array [ + Object { + "augments": Array [], + "context": Object { + "file": "[path]", + "loc": Object { + "end": Object { + "column": 2, + "index": 150, + "line": 13, + }, + "start": Object { + "column": 0, + "index": 102, + "line": 11, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Bananas are yellow", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "examples": Array [], + "implements": Array [], + "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 101, "line": 10, }, "start": Object { "column": 0, + "index": 72, "line": 8, }, }, @@ -1644,6 +1789,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -1652,10 +1798,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 232, "line": 20, }, "start": Object { "column": 0, + "index": 183, "line": 18, }, }, @@ -1665,62 +1813,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Carrots are awesome", }, ], - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 182, "line": 17, }, "start": Object { "column": 0, + "index": 152, "line": 15, }, }, @@ -1746,6 +1859,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -1754,10 +1868,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 70, "line": 6, }, "start": Object { "column": 0, + "index": 26, "line": 4, }, }, @@ -1767,62 +1883,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Apples are red", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 25, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -1848,6 +1929,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; @@ -2086,6 +2168,304 @@ f5 comment " `; +exports[`build GFM (e.g. markdown tables) for -f md 1`] = ` +" + +### Table of Contents + +* [Klass][1] + * [Parameters][2] + * [getFoo][3] + * [Examples][4] + * [withOptions][5] + * [Parameters][6] + * [withDeepOptions][7] + * [Parameters][8] + * [isClass][9] + * [Parameters][10] + * [isWeird][11] + * [Parameters][12] + * [isBuffer][13] + * [Parameters][14] + * [isArrayOfBuffers][15] + * [Parameters][16] + * [Examples][17] + * [MAGIC\\\\_NUMBER][18] + * [event][19] +* [CustomError][20] + * [Properties][21] +* [bar][22] +* [bar2][23] + * [Parameters][24] +* [bar3][25] +* [Foo][26] + * [bar][27] +* [Foobar][28] + * [bar][29] +* [customStreams][30] + * [passthrough][31] +* [tableObj][32] + +## Klass + +**Extends Stream.Writable** + +Creates a new Klass + +### Parameters + +* \`foo\` + +### getFoo + +Get this Klass's foo + +#### Examples + +this shows you how to getFoo + +\`\`\`javascript +var x = foo.getFoo(); +\`\`\` + +Returns **[Number][33]** foo + +### withOptions + +A function with an options parameter + +#### Parameters + +* \`options\` **[Object][34]** + + * \`options.foo\` **[string][35]** + * \`options.bar\` **[number][33]** +* \`otherOptions\` **[number][33]?** + +### withDeepOptions + +A function with a deep options parameter + +#### Parameters + +* \`options\` **[Object][34]** + + * \`options.foo\` **[string][35]** + * \`options.bar\` **[Object][34]** + + * \`options.bar.buz\` **[string][35]** + +### isClass + +Decide whether an object is a Klass instance +This is a \\\\[klasssic][Klass][1] +This is a \\\\[link to something that does not exist][DoesNot][36] + +#### Parameters + +* \`other\` **[Object][34]** +* \`also\` **any** + +Returns **[boolean][37]** whether the other thing is a Klass + +### isWeird + +A function that triggers the case where the autolinker doesn't find +the referenced class type + +#### Parameters + +* \`other\` **Weird** + +Returns **[boolean][37]** whether the other thing is a Klass + +### isBuffer + +This method takes a Buffer object that will be linked to nodejs.org + +#### Parameters + +* \`buf\` **([Buffer][38] | [string][35])** +* \`size\` **[number][33]** size (optional, default \`0\`) + +Returns **[boolean][37]** whether the other thing is a Klass + +### isArrayOfBuffers + +This method takes an array of buffers and counts them + +#### Parameters + +* \`buffers\` **[Array][39]<[Buffer][38]>** some buffers + +#### Examples + +\`\`\`javascript +var k = new Klass(); +k.isArrayOfBuffers(); +\`\`\` + +Returns **[number][33]** how many + +### MAGIC\\\\_NUMBER + +A magic number that identifies this Klass. + +### event + +Klass event + +## CustomError + +a typedef with nested properties + +### Properties + +* \`error\` **[object][34]** An error + + * \`error.code\` **[string][35]** The error's code + * \`error.description\` **[string][35]** The error's description + +## bar + +Get an instance of [Klass][1]. Will make +a [klass instance multiword][1], +like a [klass][1] + +Returns **[Klass][1]** that class + +## bar2 + +Rest property function + +### Parameters + +* \`toys\` **...[Number][33]** + +Returns **[undefined][40]** nothing + +## bar3 + +Get an instance of [Klass][1]. Will make +a [klass instance multiword][1], +like a [klass][1]. This needs a [number][33] input. + +Returns **[undefined][40]** nothing + +## Foo + +This is Foo + +### bar + +This is bar + +## Foobar + +This is Foobar +must have a distinct id from Foo.bar + +### bar + +This is bar + +## customStreams + +I am the container of stream types + +### passthrough + +I am a passthrough stream that belongs to customStreams + +## tableObj + +| Col 1 | Col 2 | Col 3 | +| ----- | ----- | ----- | +| Dat 1 | Dat 2 | Dat 3 | +| Dat 4 | Dat 5 | Dat 6 | + +[1]: #klass + +[2]: #parameters + +[3]: #getfoo + +[4]: #examples + +[5]: #withoptions + +[6]: #parameters-1 + +[7]: #withdeepoptions + +[8]: #parameters-2 + +[9]: #isclass + +[10]: #parameters-3 + +[11]: #isweird + +[12]: #parameters-4 + +[13]: #isbuffer + +[14]: #parameters-5 + +[15]: #isarrayofbuffers + +[16]: #parameters-6 + +[17]: #examples-1 + +[18]: #magic_number + +[19]: #event + +[20]: #customerror + +[21]: #properties + +[22]: #bar + +[23]: #bar2 + +[24]: #parameters-7 + +[25]: #bar3 + +[26]: #foo + +[27]: #bar-1 + +[28]: #foobar + +[29]: #bar-2 + +[30]: #customstreams + +[31]: #passthrough + +[32]: #tableobj + +[33]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[34]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object + +[35]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[36]: DoesNot + +[37]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[38]: https://nodejs.org/api/buffer.html + +[39]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array + +[40]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined +" +`; + exports[`lint command generates lint output 1`] = `""`; exports[`should use browser resolve 1`] = ` @@ -2110,51 +2490,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "test", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "examples": Array [], @@ -2190,18 +2532,6 @@ Array [ Object { "description": Object { "children": Array [], - "position": Object { - "end": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -2251,51 +2581,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "test", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "examples": Array [], @@ -2331,18 +2623,6 @@ Array [ Object { "description": Object { "children": Array [], - "position": Object { - "end": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -2387,51 +2667,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "test", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "examples": Array [], @@ -2467,18 +2709,6 @@ Array [ Object { "description": Object { "children": Array [], - "position": Object { - "end": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", diff --git a/__tests__/__snapshots__/index.js.snap b/__tests__/__snapshots__/index.js.snap index 109f90e23..51d8397af 100644 --- a/__tests__/__snapshots__/index.js.snap +++ b/__tests__/__snapshots__/index.js.snap @@ -9,62 +9,29 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "hi", }, ], - "position": Position { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": SourceLocation { "end": Position { "column": 9, + "index": 9, "line": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, + "index": 0, "line": 1, }, }, @@ -90,6 +57,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; @@ -114,69 +82,35 @@ exports[`build 3`] = ` \\"children\\": [ { \\"type\\": \\"text\\", - \\"value\\": \\"hi\\", - \\"position\\": { - \\"start\\": { - \\"line\\": 1, - \\"column\\": 1, - \\"offset\\": 0 - }, - \\"end\\": { - \\"line\\": 1, - \\"column\\": 3, - \\"offset\\": 2 - }, - \\"indent\\": [] - } + \\"value\\": \\"hi\\" } - ], - \\"position\\": { - \\"start\\": { - \\"line\\": 1, - \\"column\\": 1, - \\"offset\\": 0 - }, - \\"end\\": { - \\"line\\": 1, - \\"column\\": 3, - \\"offset\\": 2 - }, - \\"indent\\": [] - } - } - ], - \\"position\\": { - \\"start\\": { - \\"line\\": 1, - \\"column\\": 1, - \\"offset\\": 0 - }, - \\"end\\": { - \\"line\\": 1, - \\"column\\": 3, - \\"offset\\": 2 + ] } - } + ] }, \\"tags\\": [], \\"loc\\": { \\"start\\": { \\"line\\": 1, - \\"column\\": 0 + \\"column\\": 0, + \\"index\\": 0 }, \\"end\\": { \\"line\\": 1, - \\"column\\": 9 + \\"column\\": 9, + \\"index\\": 9 } }, \\"augments\\": [], \\"examples\\": [], + \\"implements\\": [], \\"params\\": [], \\"properties\\": [], \\"returns\\": [], \\"sees\\": [], \\"throws\\": [], \\"todos\\": [], + \\"yields\\": [], \\"name\\": \\"name\\", \\"members\\": { \\"global\\": [], diff --git a/__tests__/__snapshots__/test.js.snap b/__tests__/__snapshots__/test.js.snap index 9f4ff1567..d5bc9820a 100644 --- a/__tests__/__snapshots__/test.js.snap +++ b/__tests__/__snapshots__/test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Use Source attribute only 1`] = ` +exports[`Check that external modules could parse as input 1`] = ` Array [ Object { "augments": Array [], @@ -8,11 +8,15 @@ Array [ "loc": SourceLocation { "end": Position { "column": 1, - "line": 18, + "index": 147, + "line": 10, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 6, + "index": 113, + "line": 8, }, }, }, @@ -21,67 +25,113 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This Vue Component is a test", + "value": "I am in ", }, - ], - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, + Object { + "type": "inlineCode", + "value": "external.input.js", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + Object { + "type": "text", + "value": ".", }, - }, + ], "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "errors": Array [ + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "function", + "loc": SourceLocation { + "end": Position { + "column": 3, + "index": 112, + "line": 7, + }, + "filename": undefined, + "identifierName": undefined, + "start": Position { + "column": 0, + "index": 73, + "line": 5, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "foo", + "namespace": "foo", + "params": Array [], + "path": Array [ Object { - "message": "could not determine @name for hierarchy", + "kind": "function", + "name": "foo", }, ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": SourceLocation { + "end": Position { + "column": 2, + "index": 195, + "line": 10, + }, + "filename": undefined, + "identifierName": undefined, + "start": Position { + "column": 0, + "index": 118, + "line": 7, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "This function returns the number one.", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], "examples": Array [], + "implements": Array [], + "kind": "function", "loc": SourceLocation { "end": Position { "column": 3, - "line": 5, + "index": 117, + "line": 6, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 2, + "index": 38, + "line": 3, }, }, "members": Object { @@ -91,13 +141,13 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "", - "namespace": "", + "name": "main", + "namespace": "main", "params": Array [], "path": Array [ Object { - "kind": undefined, - "name": "", + "kind": "function", + "name": "main", }, ], "properties": Array [], @@ -108,56 +158,18 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "vue-tested component", + "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", "type": Object { - "name": "vue-tested", + "name": "Number", "type": "NameExpression", }, }, @@ -165,29 +177,34 @@ Array [ "sees": Array [], "tags": Array [ Object { - "description": "vue-tested component", + "description": "numberone", "lineNumber": 2, "title": "returns", "type": Object { - "name": "vue-tested", + "name": "Number", "type": "NameExpression", }, }, ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], "context": Object { "loc": SourceLocation { "end": Position { - "column": 5, - "line": 16, + "column": 2, + "index": 144, + "line": 8, }, + "filename": undefined, + "identifierName": undefined, "start": Position { - "column": 4, - "line": 13, + "column": 0, + "index": 80, + "line": 5, }, }, }, @@ -196,63 +213,31 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is a number", + "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], + "kind": "function", "loc": SourceLocation { "end": Position { - "column": 7, - "line": 12, + "column": 3, + "index": 79, + "line": 4, }, + "filename": undefined, + "identifierName": undefined, "start": Position { - "column": 4, - "line": 10, + "column": 0, + "index": 0, + "line": 1, }, }, "members": Object { @@ -262,26 +247,59 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "myNumber", - "namespace": "myNumber", + "name": "index", + "namespace": "index", "params": Array [], "path": Array [ Object { - "kind": undefined, - "name": "myNumber", + "kind": "function", + "name": "index", }, ], "properties": Array [], - "returns": Array [], + "returns": Array [ + Object { + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "numberone", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "title": "returns", + "type": Object { + "name": "Number", + "type": "NameExpression", + }, + }, + ], "sees": Array [], - "tags": Array [], + "tags": Array [ + Object { + "description": "numberone", + "lineNumber": 2, + "title": "returns", + "type": Object { + "name": "Number", + "type": "NameExpression", + }, + }, + ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`Vue file 1`] = ` +exports[`Use Source attribute only 1`] = ` Array [ Object { "augments": Array [], @@ -289,11 +307,15 @@ Array [ "loc": SourceLocation { "end": Position { "column": 1, - "line": 19, + "index": 222, + "line": 18, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 7, + "index": 87, + "line": 6, }, }, }, @@ -302,63 +324,34 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This Vue Component is a test", }, ], - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "errors": Array [], + "errors": Array [ + Object { + "message": "could not determine @name for hierarchy", + }, + ], "examples": Array [], + "implements": Array [], "loc": SourceLocation { "end": Position { "column": 3, - "line": 6, + "index": 86, + "line": 5, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 3, + "index": 1, + "line": 2, }, }, "members": Object { @@ -368,13 +361,13 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "vue.input", - "namespace": "vue.input", + "name": "", + "namespace": "", "params": Array [], "path": Array [ Object { "kind": undefined, - "name": "vue.input", + "name": "", }, ], "properties": Array [], @@ -385,51 +378,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "vue-tested component", }, ], - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -453,18 +408,23 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], "context": Object { "loc": SourceLocation { "end": Position { - "column": 3, - "line": 17, + "column": 5, + "index": 216, + "line": 16, }, + "filename": undefined, + "identifierName": undefined, "start": Position { - "column": 2, - "line": 14, + "column": 4, + "index": 161, + "line": 13, }, }, }, @@ -473,65 +433,38 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is a number", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "errors": Array [], + "errors": Array [ + Object { + "commentLineNumber": 0, + "message": "@memberof reference to .props not found", + }, + ], "examples": Array [], + "implements": Array [], "loc": SourceLocation { "end": Position { - "column": 5, - "line": 13, + "column": 7, + "index": 156, + "line": 12, }, + "filename": undefined, + "identifierName": undefined, "start": Position { - "column": 2, - "line": 11, + "column": 4, + "index": 121, + "line": 10, }, }, + "memberof": ".props", "members": Object { "events": Array [], "global": Array [], @@ -540,127 +473,28 @@ Array [ "static": Array [], }, "name": "myNumber", - "namespace": "myNumber", + "namespace": ".myNumber", "params": Array [], "path": Array [ Object { "kind": undefined, "name": "myNumber", + "scope": "static", }, ], "properties": Array [], "returns": Array [], + "scope": "static", "sees": Array [], "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`Vue file 2`] = `Array []`; - -exports[`config 1`] = ` -" - -## MyClass - -This is my class, a demo thing. - -### Properties - -- \`howMany\` **[number][1]** how many things it contains - -### getFoo - -Get the number 42 - -#### Parameters - -- \`getIt\` **[boolean][2]** whether to get the number - -Returns **[number][1]** forty-two - -### getUndefined - -Get undefined - -Returns **[undefined][3]** does not return anything. - -## Hello - -World - - -[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number - -[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean - -[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined -" -`; - -exports[`config with nested sections 1`] = ` -" - -## Alpha - - - - -### third - -This function is third - -### first - -This function is first - -### first - -forgot a memberof here... sure hope that doesn't crash anything! - -## Bravo - -Contains a subsection! - - -### Charlie - -Second is in here - - -#### second - -This class has some members - -##### foo - -second::foo - -###### Parameters - -- \`pork\` - -##### bar - -second::bar - -###### Parameters - -- \`beans\` -- \`rice\` - -## AClass - -### second - -shares a name with a top level item referenced in the TOC... sure hope -that doesn't crash anything! -" -`; - -exports[`external modules option 1`] = ` +exports[`Vue file 1`] = ` Array [ Object { "augments": Array [], @@ -668,11 +502,15 @@ Array [ "loc": SourceLocation { "end": Position { "column": 1, - "line": 10, + "index": 218, + "line": 20, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 8, + "index": 88, + "line": 7, }, }, }, @@ -681,98 +519,30 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "I am in ", - }, - Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - }, - "type": "inlineCode", - "value": "external.input.js", - }, - Object { - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - }, "type": "text", - "value": ".", + "value": "This Vue Component is a test", }, ], - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], - "kind": "function", + "implements": Array [], "loc": SourceLocation { "end": Position { "column": 3, - "line": 7, + "index": 87, + "line": 6, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 5, + "index": 2, + "line": 3, }, }, "members": Object { @@ -782,33 +552,70 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "foo", - "namespace": "foo", + "name": "vue.input", + "namespace": "vue.input", "params": Array [], "path": Array [ Object { - "kind": "function", - "name": "foo", + "kind": undefined, + "name": "vue.input", }, ], "properties": Array [], - "returns": Array [], + "returns": Array [ + Object { + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "vue-tested component", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "title": "returns", + "type": Object { + "name": "vue-tested", + "type": "NameExpression", + }, + }, + ], "sees": Array [], - "tags": Array [], + "tags": Array [ + Object { + "description": "vue-tested component", + "lineNumber": 2, + "title": "returns", + "type": Object { + "name": "vue-tested", + "type": "NameExpression", + }, + }, + ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], "context": Object { "loc": SourceLocation { "end": Position { - "column": 2, - "line": 10, + "column": 1, + "index": 216, + "line": 19, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 7, + "index": 119, + "line": 10, }, }, }, @@ -817,169 +624,267 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This function returns the number one.", + "value": "props", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "errors": Array [], - "examples": Array [], - "kind": "function", - "loc": SourceLocation { + "errors": Array [ + Object { + "commentLineNumber": 0, + "message": "@memberof reference to vue.input not found", + }, + ], + "examples": Array [], + "implements": Array [], + "loc": SourceLocation { "end": Position { - "column": 3, - "line": 6, + "column": 12, + "index": 118, + "line": 9, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, - "line": 3, + "index": 106, + "line": 9, }, }, + "memberof": "vue.input", "members": Object { "events": Array [], "global": Array [], "inner": Array [], "instance": Array [], - "static": Array [], - }, - "name": "main", - "namespace": "main", - "params": Array [], - "path": Array [ - Object { - "kind": "function", - "name": "main", - }, - ], - "properties": Array [], - "returns": Array [ - Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "numberone", - }, - ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + "static": Array [ + Object { + "augments": Array [], + "context": Object { + "loc": SourceLocation { + "end": Position { + "column": 3, + "index": 214, + "line": 18, + }, + "filename": undefined, + "identifierName": undefined, + "start": Position { + "column": 2, + "index": 165, + "line": 15, }, - "type": "paragraph", }, - ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is a number", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "loc": SourceLocation { + "end": Position { + "column": 5, + "index": 162, + "line": 14, }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "filename": undefined, + "identifierName": undefined, + "start": Position { + "column": 2, + "index": 131, + "line": 12, }, }, - "type": "root", - }, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", + "memberof": "vue.input.props", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "myNumber", + "namespace": ".props.myNumber", + "params": Array [], + "path": Array [ + Object { + "kind": undefined, + "name": "props", + "scope": "static", + }, + Object { + "kind": undefined, + "name": "myNumber", + "scope": "static", + }, + ], + "properties": Array [], + "returns": Array [], + "scope": "static", + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], }, - }, - ], - "sees": Array [], - "tags": Array [ + ], + }, + "name": "props", + "namespace": ".props", + "params": Array [], + "path": Array [ Object { - "description": "numberone", - "lineNumber": 2, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, + "kind": undefined, + "name": "props", + "scope": "static", }, ], + "properties": Array [], + "returns": Array [], + "scope": "static", + "sees": Array [], + "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, +] +`; + +exports[`Vue file 2`] = `Array []`; + +exports[`config 1`] = ` +" + +## MyClass + +This is my class, a demo thing. + +### Properties + +* \`howMany\` **[number][1]** how many things it contains + +### getFoo + +Get the number 42 + +#### Parameters + +* \`getIt\` **[boolean][2]** whether to get the number + +Returns **[number][1]** forty-two + +### getUndefined + +Get undefined + +Returns **[undefined][3]** does not return anything. + +## Hello + +World + +[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined +" +`; + +exports[`config with nested sections 1`] = ` +" + +## Alpha + + + +### third + +This function is third + +### first + +This function is first + +### first + +forgot a memberof here... sure hope that doesn't crash anything! + +## Bravo + +Contains a subsection! + +### Charlie + +Second is in here + +#### second + +This class has some members + +##### foo + +second::foo + +###### Parameters + +* \`pork\` + +##### bar + +second::bar + +###### Parameters + +* \`beans\` +* \`rice\` + +## AClass + +### second + +shares a name with a top level item referenced in the TOC... sure hope +that doesn't crash anything! +" +`; + +exports[`git option 1`] = ` +Array [ Object { "augments": Array [], "context": Object { + "github": Object { + "path": "[github]", + "url": "[github]", + }, "loc": SourceLocation { "end": Position { "column": 2, + "index": 144, "line": 8, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, + "index": 80, "line": 5, }, }, @@ -989,63 +894,30 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": SourceLocation { "end": Position { "column": 3, + "index": 79, "line": 4, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, + "index": 0, "line": 1, }, }, @@ -1056,13 +928,13 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "index", - "namespace": "index", + "name": "simple.input", + "namespace": "simple.input", "params": Array [], "path": Array [ Object { "kind": "function", - "name": "index", + "name": "simple.input", }, ], "properties": Array [], @@ -1073,232 +945,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, - }, - ], - "sees": Array [], - "tags": Array [ - Object { - "description": "numberone", - "lineNumber": 2, - "title": "return", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, - }, - ], - "throws": Array [], - "todos": Array [], - }, -] -`; - -exports[`git option 1`] = ` -Array [ - Object { - "augments": Array [], - "context": Object { - "github": Object { - "path": "[github]", - "url": "[github]", - }, - "loc": SourceLocation { - "end": Position { - "column": 2, - "line": 8, - }, - "start": Position { - "column": 0, - "line": 5, - }, - }, - }, - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This function returns the number one.", - }, - ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "function", - "loc": SourceLocation { - "end": Position { - "column": 3, - "line": 4, - }, - "start": Position { - "column": 0, - "line": 1, - }, - }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "simple.input", - "namespace": "simple.input", - "params": Array [], - "path": Array [ - Object { - "kind": "function", - "name": "simple.input", - }, - ], - "properties": Array [], - "returns": Array [ - Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "numberone", - }, - ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -1322,6 +975,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; @@ -1360,7 +1014,7 @@ myFoo.foo(42); \`\`\` \`\`\`html -

    Data-Foo Element in the dom

    +

    Data-Foo Element in the dom

    \`\`\` \`\`\`css @@ -1369,8 +1023,8 @@ myFoo.foo(42); } \`\`\` -- Throws **[Error][1]** if you give it something -- Throws **[TypeError][2]** if you give it something else +* Throws **[Error][1]** if you give it something +* Throws **[TypeError][2]** if you give it something else Returns **[Number][3]** numberone @@ -1384,16 +1038,16 @@ Returns **[Number][3]** numberone exports[`html nested.input.js 1`] = ` " - + - + | Documentation - - - - + + + +
    @@ -1405,6 +1059,9 @@ exports[`html nested.input.js 1`] = ` placeholder='Filter' id='filter-input' class='col12 block input' + spellcheck='false' + autocapitalize='off' + autocorrect='off' type='text' />
      @@ -1517,9 +1174,9 @@ exports[`html nested.input.js 1`] = `
    • - bar + bar2 @@ -1527,9 +1184,9 @@ exports[`html nested.input.js 1`] = `
    • - bar + bar3 @@ -1559,6 +1216,34 @@ exports[`html nested.input.js 1`] = ` +
    + + + + +
  • + Foobar + + + +
  • @@ -1591,6 +1276,16 @@ exports[`html nested.input.js 1`] = ` + +
  • + tableObj + + + +
  • +
    @@ -1658,6 +1353,8 @@ exports[`html nested.input.js 1`] = ` + +
    Static Members
    @@ -1734,6 +1431,8 @@ This is a [link to something that does not exist]DoesNot
    @@ -1803,6 +1502,8 @@ the referenced class type

    + +
    @@ -1881,6 +1582,8 @@ the referenced class type

    + + @@ -1942,11 +1645,13 @@ the referenced class type

    + +
    Example
    -
    var k = new Klass();
    -k.isArrayOfBuffers();
    +
    var k = new Klass();
    +k.isArrayOfBuffers();
    @@ -2001,6 +1706,8 @@ k.isArrayOfBuffers(); + + @@ -2059,11 +1766,13 @@ k.isArrayOfBuffers(); + +
    Example

    this shows you how to getFoo

    -
    var x = foo.getFoo();
    +
    var x = foo.getFoo();
    @@ -2174,6 +1883,8 @@ k.isArrayOfBuffers(); + + @@ -2276,6 +1987,8 @@ k.isArrayOfBuffers(); + + @@ -2330,6 +2043,8 @@ k.isArrayOfBuffers(); + + @@ -2415,6 +2130,8 @@ k.isArrayOfBuffers(); + + @@ -2473,6 +2190,8 @@ like a
    klass

    + + @@ -2483,8 +2202,8 @@ like a klass

    -

    - bar +

    + bar2

    @@ -2493,7 +2212,7 @@ like a klass

    Rest property function

    -
    bar(toys: ...Number): undefined
    +
    bar2(toys: ...Number): undefined
    @@ -2542,6 +2261,8 @@ like a klass

    + + @@ -2552,8 +2273,8 @@ like a klass

    -

    - bar +

    + bar3

    @@ -2564,7 +2285,7 @@ like a klass

    a klass instance multiword, like a klass. This needs a number input.

    -
    bar(): undefined
    +
    bar3(): undefined
    @@ -2600,6 +2321,8 @@ like a klass. This needs a @@ -2641,6 +2364,8 @@ like a klass. This needs a klass. This needs a klass. This needs a -

    - customStreams +

    + Foobar

    -

    I am the container of stream types

    +

    This is Foobar +must have a distinct id from Foo.bar

    -
    customStreams
    +
    new Foobar()
    @@ -2743,14 +2471,18 @@ like a
    klass. This needs a Static Members
    + + + + +
    Instance Members
    -
    + - - - - - -" -`; + +
    -exports[`multi-file input 1`] = ` -Array [ - Object { - "augments": Array [], - "context": Object { - "loc": SourceLocation { - "end": Position { - "column": 1, - "line": 13, - }, - "start": Position { + +
    + +

    + customStreams +

    + + +
    + + +

    I am the container of stream types

    + +
    customStreams
    + + + + + + + + + + + + + + + + + + + + + + + +
    Static Members
    +
    + +
    +
    +
    + + new passthrough() +
    +
    +
    +
    + + + +

    I am a passthrough stream that belongs to customStreams

    + +
    new passthrough()
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + + + +
    + + + + +
    + + +
    + +

    + tableObj +

    + + +
    + + + + + + + + + + + + + + + + + + + + + + +
    Col 1Col 2Col 3
    Dat 1Dat 2Dat 3
    Dat 4Dat 5Dat 6
    + +
    tableObj
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    + + + + + +" +`; + +exports[`multi-file input 1`] = ` +Array [ + Object { + "augments": Array [], + "context": Object { + "loc": SourceLocation { + "end": Position { + "column": 1, + "index": 245, + "line": 13, + }, + "filename": undefined, + "identifierName": undefined, + "start": Position { "column": 0, + "index": 180, "line": 10, }, }, @@ -2837,51 +2748,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number plus two.", }, ], - "position": Position { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], @@ -2891,14 +2764,19 @@ Array [ // result is 6", }, ], + "implements": Array [], "kind": "function", "loc": SourceLocation { "end": Position { "column": 3, + "index": 179, "line": 9, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, + "index": 0, "line": 1, }, }, @@ -2918,51 +2796,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the number", }, ], - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -2988,51 +2828,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numbertwo", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -3072,6 +2874,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -3079,10 +2882,14 @@ Array [ "loc": SourceLocation { "end": Position { "column": 2, + "index": 144, "line": 8, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, + "index": 80, "line": 5, }, }, @@ -3092,63 +2899,30 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": SourceLocation { "end": Position { "column": 3, + "index": 79, "line": 4, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, + "index": 0, "line": 1, }, }, @@ -3176,51 +2950,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -3244,6 +2980,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; @@ -3256,10 +2993,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 72, "line": 4, }, "start": Object { "column": 0, + "index": 7, "line": 2, }, }, @@ -3267,14 +3006,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 6, + "index": 6, "line": 1, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -3336,11 +3078,33 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs boolean-literal-type.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs boolean-literal-type.input.js markdown 1`] = ` +" + +### Table of Contents + +* [f][1] + * [Parameters][2] + +## f + +### Parameters + +* \`t\` **\`true\`** +* \`f\` **\`false\`** + +Returns **\\\\[\`true\`, \`false\`]** + +[1]: #f + +[2]: #parameters +" +`; exports[`outputs boolean-literal-type.input.js markdown AST 1`] = ` Object { @@ -3435,6 +3199,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -3488,11 +3253,13 @@ Array [ "loc": Object { "end": Object { "column": 1, - "line": 8, + "index": 190, + "line": 9, }, "start": Object { "column": 0, - "line": 6, + "index": 148, + "line": 7, }, }, }, @@ -3501,63 +3268,39 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is my class, a demo thing.", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [ + Object { + "description": null, + "lineNumber": 3, + "name": "MyInterface", + "title": "implements", + "type": Object { + "name": "MyInterface", + "type": "NameExpression", + }, + }, + ], "kind": "class", "loc": Object { "end": Object { "column": 3, - "line": 5, + "index": 147, + "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -3572,11 +3315,13 @@ Array [ "loc": Object { "end": Object { "column": 2, - "line": 17, + "index": 376, + "line": 18, }, "start": Object { "column": 0, - "line": 15, + "index": 304, + "line": 16, }, }, }, @@ -3585,64 +3330,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get the number 42", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, - "line": 14, + "index": 303, + "line": 15, }, "start": Object { "column": 0, - "line": 10, + "index": 192, + "line": 11, }, }, "memberof": "MyClass", @@ -3662,51 +3372,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "whether to get the number", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -3737,51 +3409,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "forty-two", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -3816,6 +3450,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -3823,11 +3458,13 @@ Array [ "loc": Object { "end": Object { "column": 47, - "line": 23, + "index": 500, + "line": 24, }, "start": Object { "column": 0, - "line": 23, + "index": 453, + "line": 24, }, }, }, @@ -3836,64 +3473,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get undefined", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, - "line": 22, + "index": 452, + "line": 23, }, "start": Object { "column": 0, - "line": 19, + "index": 378, + "line": 20, }, }, "memberof": "MyClass", @@ -3926,51 +3528,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "does not return anything.", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -3993,6 +3557,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -4013,54 +3578,16 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "how many things it contains", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "lineNumber": 3, + "lineNumber": 4, "name": "howMany", "title": "property", "type": Object { @@ -4080,8 +3607,18 @@ Array [ "type": null, }, Object { - "description": "how many things it contains", + "description": null, "lineNumber": 3, + "name": "MyInterface", + "title": "implements", + "type": Object { + "name": "MyInterface", + "type": "NameExpression", + }, + }, + Object { + "description": "how many things it contains", + "lineNumber": 4, "name": "howMany", "title": "property", "type": Object { @@ -4092,11 +3629,63 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs class.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs class.input.js markdown 1`] = ` +" + +### Table of Contents + +* [MyClass][1] + * [Properties][2] + * [getFoo][3] + * [Parameters][4] + * [getUndefined][5] + +## MyClass + +This is my class, a demo thing. + +### Properties + +* \`howMany\` **[number][6]** how many things it contains + +### getFoo + +Get the number 42 + +#### Parameters + +* \`getIt\` **[boolean][7]** whether to get the number + +Returns **[number][6]** forty-two + +### getUndefined + +Get undefined + +Returns **[undefined][8]** does not return anything. + +[1]: #myclass + +[2]: #properties + +[3]: #getfoo + +[4]: #parameters + +[5]: #getundefined + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined +" +`; exports[`outputs class.input.js markdown AST 1`] = ` Object { @@ -4118,36 +3707,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is my class, a demo thing.", }, ], - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -4197,36 +3760,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "how many things it contains", }, ], - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -4237,6 +3774,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -4252,36 +3790,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get the number 42", }, ], - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -4331,36 +3843,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "whether to get the number", }, ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -4371,6 +3857,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -4402,36 +3889,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "forty-two", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -4450,36 +3911,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get undefined", }, ], - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -4511,36 +3946,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "does not return anything.", }, ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -4548,19 +3957,19 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined", }, @@ -4577,10 +3986,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 92, "line": 5, }, "start": Object { "column": 0, + "index": 16, "line": 2, }, }, @@ -4590,63 +4001,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "i am foo", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 15, + "index": 15, "line": 1, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -4672,6 +4048,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -4679,10 +4056,12 @@ Array [ "loc": Object { "end": Object { "column": 22, + "index": 90, "line": 4, }, "start": Object { "column": 2, + "index": 70, "line": 4, }, }, @@ -4692,51 +4071,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "i am foo's son", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [ @@ -4746,14 +4087,17 @@ Array [ }, ], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 23, + "index": 67, "line": 3, }, "start": Object { "column": 2, + "index": 46, "line": 3, }, }, @@ -4782,11 +4126,32 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs default-export-function.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs default-export-function.input.js markdown 1`] = ` +" + +### Table of Contents + +* [default-export-function.input][1] +* [bar][2] + +## default-export-function.input + +i am foo + +## bar + +i am foo's son + +[1]: #default-export-functioninput + +[2]: #bar +" +`; exports[`outputs default-export-function.input.js markdown AST 1`] = ` Object { @@ -4808,36 +4173,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "i am foo", }, ], - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -4853,36 +4192,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "i am foo's son", }, ], - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -4892,16 +4205,81 @@ Object { exports[`outputs document-exported.input.js JSON 1`] = ` Array [ + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 28, + "index": 28, + "line": 1, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + }, + "description": "", + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "function", + "loc": Object { + "end": Object { + "column": 28, + "index": 28, + "line": 1, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "x", + "namespace": "x", + "params": Array [ + Object { + "lineNumber": 1, + "name": "yparam", + "title": "param", + }, + ], + "path": Array [ + Object { + "kind": "function", + "name": "x", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { "column": 1, + "index": 41, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -4909,14 +4287,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 1, + "index": 41, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -4931,10 +4312,12 @@ Array [ "loc": Object { "end": Object { "column": 14, + "index": 39, "line": 2, }, "start": Object { "column": 2, + "index": 27, "line": 2, }, }, @@ -4942,14 +4325,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 14, + "index": 39, "line": 2, }, "start": Object { "column": 2, + "index": 27, "line": 2, }, }, @@ -4982,6 +4368,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -5001,63 +4388,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], - }, - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - }, - "description": "", - "errors": Array [], - "examples": Array [], - "kind": "function", - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "x", - "namespace": "x", - "params": Array [ - Object { - "lineNumber": 1, - "name": "yparam", - "title": "param", - }, - ], - "path": Array [ - Object { - "kind": "function", - "name": "x", - }, - ], - "properties": Array [], - "returns": Array [], - "sees": Array [], - "tags": Array [], - "throws": Array [], - "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5065,10 +4396,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 246, "line": 11, }, "start": Object { "column": 0, + "index": 40, "line": 3, }, }, @@ -5076,14 +4409,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 1, + "index": 246, "line": 11, }, "start": Object { "column": 0, + "index": 40, "line": 3, }, }, @@ -5098,10 +4434,12 @@ Array [ "loc": Object { "end": Object { "column": 18, + "index": 107, "line": 5, }, "start": Object { "column": 2, + "index": 91, "line": 5, }, }, @@ -5109,14 +4447,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 18, + "index": 107, "line": 5, }, "start": Object { "column": 2, + "index": 91, "line": 5, }, }, @@ -5149,6 +4490,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5156,10 +4498,12 @@ Array [ "loc": Object { "end": Object { "column": 22, + "index": 130, "line": 6, }, "start": Object { "column": 2, + "index": 110, "line": 6, }, }, @@ -5167,14 +4511,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 22, + "index": 130, "line": 6, }, "start": Object { "column": 2, + "index": 110, "line": 6, }, }, @@ -5207,6 +4554,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5214,10 +4562,12 @@ Array [ "loc": Object { "end": Object { "column": 23, + "index": 154, "line": 7, }, "start": Object { "column": 2, + "index": 133, "line": 7, }, }, @@ -5225,14 +4575,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 23, + "index": 154, "line": 7, }, "start": Object { "column": 2, + "index": 133, "line": 7, }, }, @@ -5271,6 +4624,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [ @@ -5280,10 +4634,12 @@ Array [ "loc": Object { "end": Object { "column": 26, + "index": 181, "line": 8, }, "start": Object { "column": 2, + "index": 157, "line": 8, }, }, @@ -5291,14 +4647,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 26, + "index": 181, "line": 8, }, "start": Object { "column": 2, + "index": 157, "line": 8, }, }, @@ -5331,6 +4690,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5338,10 +4698,12 @@ Array [ "loc": Object { "end": Object { "column": 30, + "index": 212, "line": 9, }, "start": Object { "column": 2, + "index": 184, "line": 9, }, }, @@ -5349,14 +4711,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 30, + "index": 212, "line": 9, }, "start": Object { "column": 2, + "index": 184, "line": 9, }, }, @@ -5389,6 +4754,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5396,10 +4762,12 @@ Array [ "loc": Object { "end": Object { "column": 31, + "index": 244, "line": 10, }, "start": Object { "column": 2, + "index": 215, "line": 10, }, }, @@ -5407,14 +4775,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 31, + "index": 244, "line": 10, }, "start": Object { "column": 2, + "index": 215, "line": 10, }, }, @@ -5453,6 +4824,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -5481,6 +4853,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5488,10 +4861,12 @@ Array [ "loc": Object { "end": Object { "column": 25, + "index": 63, "line": 3, }, "start": Object { "column": 0, + "index": 38, "line": 3, }, }, @@ -5499,14 +4874,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 25, + "index": 63, "line": 3, }, "start": Object { "column": 0, + "index": 38, "line": 3, }, }, @@ -5536,6 +4914,7 @@ Array [ "name": "boolean", "type": "NameExpression", }, + "yields": Array [], }, Object { "augments": Array [], @@ -5543,10 +4922,12 @@ Array [ "loc": Object { "end": Object { "column": 18, + "index": 66, "line": 5, }, "start": Object { "column": 0, + "index": 48, "line": 5, }, }, @@ -5554,13 +4935,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 18, + "index": 66, "line": 5, }, "start": Object { "column": 0, + "index": 48, "line": 5, }, }, @@ -5585,6 +4969,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5592,10 +4977,12 @@ Array [ "loc": Object { "end": Object { "column": 31, + "index": 124, "line": 8, }, "start": Object { "column": 0, + "index": 93, "line": 8, }, }, @@ -5605,63 +4992,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Description of y3", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 24, + "index": 92, "line": 7, }, "start": Object { "column": 0, + "index": 68, "line": 7, }, }, @@ -5704,6 +5056,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5711,10 +5064,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 360, "line": 19, }, "start": Object { "column": 0, + "index": 248, "line": 13, }, }, @@ -5722,13 +5077,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 2, + "index": 360, "line": 19, }, "start": Object { "column": 0, + "index": 248, "line": 13, }, }, @@ -5744,10 +5102,12 @@ Array [ "loc": Object { "end": Object { "column": 13, + "index": 283, "line": 14, }, "start": Object { "column": 2, + "index": 272, "line": 14, }, }, @@ -5755,14 +5115,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 13, + "index": 283, "line": 14, }, "start": Object { "column": 2, + "index": 272, "line": 14, }, }, @@ -5794,6 +5157,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5801,10 +5165,12 @@ Array [ "loc": Object { "end": Object { "column": 17, + "index": 302, "line": 15, }, "start": Object { "column": 2, + "index": 287, "line": 15, }, }, @@ -5812,14 +5178,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 17, + "index": 302, "line": 15, }, "start": Object { "column": 2, + "index": 287, "line": 15, }, }, @@ -5851,6 +5220,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5858,10 +5228,12 @@ Array [ "loc": Object { "end": Object { "column": 18, + "index": 322, "line": 16, }, "start": Object { "column": 2, + "index": 306, "line": 16, }, }, @@ -5869,14 +5241,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 18, + "index": 322, "line": 16, }, "start": Object { "column": 2, + "index": 306, "line": 16, }, }, @@ -5914,6 +5289,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5921,10 +5297,12 @@ Array [ "loc": Object { "end": Object { "column": 10, + "index": 334, "line": 17, }, "start": Object { "column": 2, + "index": 326, "line": 17, }, }, @@ -5932,13 +5310,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 10, + "index": 334, "line": 17, }, "start": Object { "column": 2, + "index": 326, "line": 17, }, }, @@ -5969,6 +5350,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -5976,10 +5358,12 @@ Array [ "loc": Object { "end": Object { "column": 21, + "index": 357, "line": 18, }, "start": Object { "column": 2, + "index": 338, "line": 18, }, }, @@ -5987,14 +5371,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 21, + "index": 357, "line": 18, }, "start": Object { "column": 2, + "index": 338, "line": 18, }, }, @@ -6026,6 +5413,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -6043,6 +5431,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -6050,10 +5439,12 @@ Array [ "loc": Object { "end": Object { "column": 16, + "index": 1264, "line": 55, }, "start": Object { "column": 0, + "index": 1248, "line": 55, }, }, @@ -6061,14 +5452,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 16, + "index": 1264, "line": 55, }, "start": Object { "column": 0, + "index": 1248, "line": 55, }, }, @@ -6094,6 +5488,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -6101,10 +5496,12 @@ Array [ "loc": Object { "end": Object { "column": 16, + "index": 1281, "line": 56, }, "start": Object { "column": 0, + "index": 1265, "line": 56, }, }, @@ -6112,14 +5509,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 16, + "index": 1281, "line": 56, }, "start": Object { "column": 0, + "index": 1265, "line": 56, }, }, @@ -6145,6 +5545,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -6152,10 +5553,12 @@ Array [ "loc": Object { "end": Object { "column": 23, + "index": 1332, "line": 60, }, "start": Object { "column": 0, + "index": 1309, "line": 60, }, }, @@ -6163,14 +5566,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 23, + "index": 1332, "line": 60, }, "start": Object { "column": 0, + "index": 1309, "line": 60, }, }, @@ -6200,6 +5606,7 @@ Array [ "name": "number", "type": "NameExpression", }, + "yields": Array [], }, Object { "augments": Array [], @@ -6207,10 +5614,12 @@ Array [ "loc": Object { "end": Object { "column": 17, + "index": 1350, "line": 61, }, "start": Object { "column": 0, + "index": 1333, "line": 61, }, }, @@ -6218,14 +5627,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 17, + "index": 1350, "line": 61, }, "start": Object { "column": 0, + "index": 1333, "line": 61, }, }, @@ -6255,6 +5667,7 @@ Array [ "name": "string", "type": "NameExpression", }, + "yields": Array [], }, Object { "augments": Array [], @@ -6262,10 +5675,12 @@ Array [ "loc": Object { "end": Object { "column": 17, + "index": 1368, "line": 62, }, "start": Object { "column": 0, + "index": 1351, "line": 62, }, }, @@ -6273,14 +5688,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 17, + "index": 1368, "line": 62, }, "start": Object { "column": 0, + "index": 1351, "line": 62, }, }, @@ -6310,6 +5728,7 @@ Array [ "name": "string", "type": "NameExpression", }, + "yields": Array [], }, Object { "augments": Array [], @@ -6317,10 +5736,12 @@ Array [ "loc": Object { "end": Object { "column": 34, + "index": 1488, "line": 68, }, "start": Object { "column": 0, + "index": 1454, "line": 68, }, }, @@ -6328,14 +5749,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 34, + "index": 1488, "line": 68, }, "start": Object { "column": 0, + "index": 1454, "line": 68, }, }, @@ -6371,6 +5795,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -6378,10 +5803,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 1537, "line": 74, }, "start": Object { "column": 0, + "index": 1506, "line": 72, }, }, @@ -6389,13 +5816,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 2, + "index": 1537, "line": 74, }, "start": Object { "column": 0, + "index": 1506, "line": 72, }, }, @@ -6411,10 +5841,12 @@ Array [ "loc": Object { "end": Object { "column": 10, + "index": 1534, "line": 73, }, "start": Object { "column": 2, + "index": 1526, "line": 73, }, }, @@ -6422,14 +5854,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 10, + "index": 1534, "line": 73, }, "start": Object { "column": 2, + "index": 1526, "line": 73, }, }, @@ -6461,6 +5896,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -6478,6 +5914,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -6485,10 +5922,12 @@ Array [ "loc": Object { "end": Object { "column": 4, + "index": 1611, "line": 80, }, "start": Object { "column": 0, + "index": 1557, "line": 77, }, }, @@ -6498,63 +5937,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "f5 comment", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 17, + "index": 1556, "line": 76, }, "start": Object { "column": 0, + "index": 1539, "line": 76, }, }, @@ -6590,6 +5994,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -6597,10 +6002,12 @@ Array [ "loc": Object { "end": Object { "column": 3, + "index": 1610, "line": 80, }, "start": Object { "column": 2, + "index": 1587, "line": 78, }, }, @@ -6608,13 +6015,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 3, + "index": 1610, "line": 80, }, "start": Object { "column": 2, + "index": 1587, "line": 78, }, }, @@ -6630,10 +6040,12 @@ Array [ "loc": Object { "end": Object { "column": 12, + "index": 1606, "line": 79, }, "start": Object { "column": 4, + "index": 1598, "line": 79, }, }, @@ -6641,14 +6053,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 12, + "index": 1606, "line": 79, }, "start": Object { "column": 4, + "index": 1598, "line": 79, }, }, @@ -6680,6 +6095,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -6697,78 +6113,291 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs document-exported.input.js markdown 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"`; +exports[`outputs document-exported.input.js markdown 1`] = ` +" -exports[`outputs document-exported.input.js markdown AST 1`] = ` -Object { - "children": Array [ - Object { - "type": "html", - "value": "", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "z", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "zMethod", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "x", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Parameters", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "yparam", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], +### Table of Contents + +* [x][1] + * [Parameters][2] +* [z][3] + * [zMethod][4] +* [Class][5] + * [Parameters][6] + * [classMethod][7] + * [classGetter][8] + * [classSetter][9] + * [Parameters][10] + * [staticMethod][11] + * [staticGetter][12] + * [staticSetter][13] + * [Parameters][14] +* [T5][15] +* [y2Default][16] +* [y4][17] + * [Parameters][18] +* [object][19] + * [method][20] + * [getter][21] + * [setter][22] + * [Parameters][23] + * [prop][24] + * [func][25] +* [f1][26] +* [f3][27] +* [T][28] +* [T2][29] +* [T4][30] +* [f4][31] + * [Parameters][32] +* [o1][33] + * [om1][34] +* [f5][35] + * [Parameters][36] +* [o2][37] + * [om2][38] + +## x + +### Parameters + +* \`yparam\` + +## z + +### zMethod + +## Class + +### Parameters + +* \`a\` **[string][39]** + +### classMethod + +### classGetter + +### classSetter + +#### Parameters + +* \`v\` + +### staticMethod + +### staticGetter + +### staticSetter + +#### Parameters + +* \`v\` + +## T5 + +Type: [boolean][40] + +## y2Default + +## y4 + +Description of y3 + +### Parameters + +* \`p\` **[number][41]** + +Returns **void** + +## object + +### method + +### getter + +### setter + +#### Parameters + +* \`v\` + +### prop + +### func + +## f1 + +## f3 + +## T + +Type: [number][41] + +## T2 + +Type: [string][39] + +## T4 + +Type: [string][39] + +## f4 + +### Parameters + +* \`x\` **X** + +## o1 + +### om1 + +## f5 + +f5 comment + +### Parameters + +* \`y\` **Y** + +## o2 + +### om2 + +[1]: #x + +[2]: #parameters + +[3]: #z + +[4]: #zmethod + +[5]: #class + +[6]: #parameters-1 + +[7]: #classmethod + +[8]: #classgetter + +[9]: #classsetter + +[10]: #parameters-2 + +[11]: #staticmethod + +[12]: #staticgetter + +[13]: #staticsetter + +[14]: #parameters-3 + +[15]: #t5 + +[16]: #y2default + +[17]: #y4 + +[18]: #parameters-4 + +[19]: #object + +[20]: #method + +[21]: #getter + +[22]: #setter + +[23]: #parameters-5 + +[24]: #prop + +[25]: #func + +[26]: #f1 + +[27]: #f3 + +[28]: #t + +[29]: #t2 + +[30]: #t4 + +[31]: #f4 + +[32]: #parameters-6 + +[33]: #o1 + +[34]: #om1 + +[35]: #f5 + +[36]: #parameters-7 + +[37]: #o2 + +[38]: #om2 + +[39]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[40]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[41]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; + +exports[`outputs document-exported.input.js markdown AST 1`] = ` +Object { + "children": Array [ + Object { + "type": "html", + "value": "", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "x", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Parameters", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "yparam", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], "type": "paragraph", }, ], @@ -6776,8 +6405,29 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "z", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "zMethod", + }, + ], + "depth": 3, + "type": "heading", + }, Object { "children": Array [ Object { @@ -6840,6 +6490,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -6908,6 +6559,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -6976,6 +6628,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -7031,36 +6684,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Description of y3", }, ], - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -7115,6 +6742,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -7215,6 +6843,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -7402,6 +7031,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -7437,36 +7067,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "f5 comment", }, ], - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -7514,6 +7118,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -7538,19 +7143,19 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -7567,10 +7172,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 67, "line": 5, }, "start": Object { "column": 0, + "index": 40, "line": 3, }, }, @@ -7578,13 +7185,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 2, + "index": 67, "line": 5, }, "start": Object { "column": 0, + "index": 40, "line": 3, }, }, @@ -7609,6 +7219,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -7616,10 +7227,12 @@ Array [ "loc": Object { "end": Object { "column": 7, + "index": 64, "line": 4, }, "start": Object { "column": 2, + "index": 59, "line": 4, }, }, @@ -7632,13 +7245,16 @@ Array [ }, ], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 7, + "index": 64, "line": 4, }, "start": Object { "column": 2, + "index": 59, "line": 4, }, }, @@ -7666,11 +7282,28 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs document-exported-export-default-object.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs document-exported-export-default-object.input.js markdown 1`] = ` +" + +### Table of Contents + +* [document-exported-export-default-object.input][1] +* [x][2] + +## document-exported-export-default-object.input + +## x + +[1]: #document-exported-export-default-objectinput + +[2]: #x +" +`; exports[`outputs document-exported-export-default-object.input.js markdown AST 1`] = ` Object { @@ -7712,10 +7345,12 @@ Array [ "loc": Object { "end": Object { "column": 18, + "index": 58, "line": 3, }, "start": Object { "column": 0, + "index": 40, "line": 3, }, }, @@ -7723,13 +7358,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 18, + "index": 58, "line": 3, }, "start": Object { "column": 0, + "index": 40, "line": 3, }, }, @@ -7754,11 +7392,23 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs document-exported-export-default-value.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs document-exported-export-default-value.input.js markdown 1`] = ` +" + +### Table of Contents + +* [document-exported-export-default-value.input][1] + +## document-exported-export-default-value.input + +[1]: #document-exported-export-default-valueinput +" +`; exports[`outputs document-exported-export-default-value.input.js markdown AST 1`] = ` Object { @@ -7790,10 +7440,12 @@ Array [ "loc": Object { "end": Object { "column": 10, + "index": 192, "line": 9, }, "start": Object { "column": 0, + "index": 103, "line": 5, }, }, @@ -7803,68 +7455,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 33, - "line": 2, - "offset": 88, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function destructures with defaults. It should not have any parameter descriptions.", }, ], - "position": Object { - "end": Object { - "column": 33, - "line": 2, - "offset": 88, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 33, - "line": 2, - "offset": 88, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 102, "line": 4, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -7923,17 +7536,20 @@ have any parameter descriptions.", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 34, + "column": 37, + "index": 311, "line": 16, }, "start": Object { "column": 0, + "index": 274, "line": 16, }, }, @@ -7943,67 +7559,32 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Similar, but with an array", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [ Object { - "description": "destructure([1, 2, 3])", + "description": "destructure2([0, 1, 2, 3])", }, ], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 273, "line": 15, }, "start": Object { "column": 0, + "index": 194, "line": 11, }, }, @@ -8014,15 +7595,14 @@ have any parameter descriptions.", "instance": Array [], "static": Array [], }, - "name": "destructure", - "namespace": "destructure", + "name": "destructure2", + "namespace": "destructure2", "params": Array [ Object { "anonymous": true, "name": "$0", "properties": Array [ Object { - "lineNumber": 16, "name": "$0.0", "title": "param", }, @@ -8036,6 +7616,11 @@ have any parameter descriptions.", "name": "$0.2", "title": "param", }, + Object { + "lineNumber": 16, + "name": "$0.3", + "title": "param", + }, ], "title": "param", "type": Object { @@ -8047,7 +7632,7 @@ have any parameter descriptions.", "path": Array [ Object { "kind": "function", - "name": "destructure", + "name": "destructure2", }, ], "properties": Array [], @@ -8055,13 +7640,14 @@ have any parameter descriptions.", "sees": Array [], "tags": Array [ Object { - "description": "destructure([1, 2, 3])", + "description": "destructure2([0, 1, 2, 3])", "lineNumber": 2, "title": "example", }, ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -8069,10 +7655,12 @@ have any parameter descriptions.", "loc": Object { "end": Object { "column": 31, + "index": 472, "line": 23, }, "start": Object { "column": 0, + "index": 441, "line": 23, }, }, @@ -8082,63 +7670,28 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 440, "line": 22, }, "start": Object { "column": 0, + "index": 313, "line": 18, }, }, @@ -8158,51 +7711,13 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "an array of numbers", }, ], - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -8242,51 +7757,13 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -8329,6 +7806,7 @@ have any parameter descriptions.", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -8336,10 +7814,12 @@ have any parameter descriptions.", "loc": Object { "end": Object { "column": 1, + "index": 1217, "line": 75, }, "start": Object { "column": 0, + "index": 663, "line": 36, }, }, @@ -8349,51 +7829,13 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is a sink", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], @@ -8406,14 +7848,17 @@ class A { }", }, ], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 662, "line": 35, }, "start": Object { "column": 0, + "index": 474, "line": 25, }, }, @@ -8428,10 +7873,12 @@ class A { "loc": Object { "end": Object { "column": 18, + "index": 829, "line": 45, }, "start": Object { "column": 2, + "index": 813, "line": 45, }, }, @@ -8441,63 +7888,28 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is a property of the sink.", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 5, + "index": 810, "line": 44, }, "start": Object { "column": 2, + "index": 764, "line": 42, }, }, @@ -8530,6 +7942,7 @@ class A { "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -8537,10 +7950,12 @@ class A { "loc": Object { "end": Object { "column": 3, + "index": 889, "line": 52, }, "start": Object { "column": 2, + "index": 862, "line": 50, }, }, @@ -8550,63 +7965,28 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Is it empty", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 5, + "index": 859, "line": 49, }, "start": Object { "column": 2, + "index": 833, "line": 47, }, }, @@ -8639,6 +8019,7 @@ class A { "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -8646,10 +8027,12 @@ class A { "loc": Object { "end": Object { "column": 4, + "index": 1007, "line": 59, }, "start": Object { "column": 2, + "index": 949, "line": 57, }, }, @@ -8659,63 +8042,28 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This uses the class property transform", }, ], - "position": Object { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 5, + "index": 946, "line": 56, }, "start": Object { "column": 2, + "index": 893, "line": 54, }, }, @@ -8766,6 +8114,7 @@ class A { "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -8773,10 +8122,12 @@ class A { "loc": Object { "end": Object { "column": 3, + "index": 1215, "line": 74, }, "start": Object { "column": 2, + "index": 1181, "line": 72, }, }, @@ -8786,68 +8137,29 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 15, - "line": 2, - "offset": 63, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is a getter method: it should be documented as a property.", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 2, - "offset": 63, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 2, - "offset": 63, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "member", "loc": Object { "end": Object { "column": 5, + "index": 1178, "line": 71, }, "start": Object { "column": 2, + "index": 1095, "line": 68, }, }, @@ -8880,6 +8192,7 @@ as a property.", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [ @@ -8889,10 +8202,12 @@ as a property.", "loc": Object { "end": Object { "column": 3, + "index": 1091, "line": 66, }, "start": Object { "column": 2, + "index": 1051, "line": 64, }, }, @@ -8902,63 +8217,28 @@ as a property.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method says hello", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 5, + "index": 1048, "line": 63, }, "start": Object { "column": 2, + "index": 1011, "line": 61, }, }, @@ -8991,6 +8271,7 @@ as a property.", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -9003,51 +8284,13 @@ as a property.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the height of the thing", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -9064,51 +8307,13 @@ as a property.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the width of the thing", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -9162,6 +8367,7 @@ class A { ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -9169,10 +8375,12 @@ class A { "loc": Object { "end": Object { "column": 25, + "index": 1349, "line": 82, }, "start": Object { "column": 0, + "index": 1324, "line": 82, }, }, @@ -9182,63 +8390,28 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 61, - "line": 1, - "offset": 60, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method returns a basket. The type should not be linked.", }, ], - "position": Object { - "end": Object { - "column": 61, - "line": 1, - "offset": 60, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 61, - "line": 1, - "offset": 60, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 1323, "line": 81, }, "start": Object { "column": 0, + "index": 1219, "line": 77, }, }, @@ -9266,51 +8439,13 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "a basket", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -9334,6 +8469,7 @@ class A { ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -9341,10 +8477,12 @@ class A { "loc": Object { "end": Object { "column": 23, + "index": 1540, "line": 90, }, "start": Object { "column": 0, + "index": 1517, "line": 90, }, }, @@ -9354,19 +8492,6 @@ class A { Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method returns a ", }, @@ -9378,39 +8503,11 @@ class A { }, ], "jsdoc": true, - "position": Object { - "end": Object { - "column": 40, - "line": 1, - "offset": 39, - }, - "indent": Array [], - "start": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - }, "title": null, "type": "link", "url": "Sink", }, Object { - "position": Object { - "end": Object { - "column": 12, - "line": 2, - "offset": 79, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 40, - "line": 1, - "offset": 39, - }, - }, "type": "text", "value": ". The type should be linked. It takes a ", @@ -9423,83 +8520,33 @@ It takes a ", }, ], "jsdoc": true, - "position": Object { - "end": Object { - "column": 26, - "line": 2, - "offset": 93, - }, - "indent": Array [], - "start": Object { - "column": 12, - "line": 2, - "offset": 79, - }, - }, "title": null, "type": "link", "url": "number", }, Object { - "position": Object { - "end": Object { - "column": 55, - "line": 2, - "offset": 122, - }, - "indent": Array [], - "start": Object { - "column": 26, - "line": 2, - "offset": 93, - }, - }, "type": "text", "value": " which should also be linked.", }, ], - "position": Object { - "end": Object { - "column": 55, - "line": 2, - "offset": 122, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 55, - "line": 2, - "offset": 122, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 1516, "line": 89, }, "start": Object { "column": 0, + "index": 1351, "line": 84, }, }, @@ -9527,51 +8574,13 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "a sink", }, ], - "position": Object { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -9595,6 +8604,7 @@ It takes a ", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -9602,10 +8612,12 @@ It takes a ", "loc": Object { "end": Object { "column": 43, + "index": 1628, "line": 95, }, "start": Object { "column": 0, + "index": 1585, "line": 95, }, }, @@ -9615,63 +8627,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function takes rest params", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 1584, "line": 94, }, "start": Object { "column": 0, + "index": 1542, "line": 92, }, }, @@ -9706,6 +8683,7 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -9713,10 +8691,12 @@ It takes a ", "loc": Object { "end": Object { "column": 1, + "index": 1856, "line": 107, }, "start": Object { "column": 0, + "index": 1670, "line": 100, }, }, @@ -9726,63 +8706,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "So does this one, with types", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 1669, "line": 99, }, "start": Object { "column": 0, + "index": 1630, "line": 97, }, }, @@ -9821,17 +8766,21 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { + "async": true, "augments": Array [], "context": Object { "loc": Object { "end": Object { "column": 23, + "index": 1935, "line": 114, }, "start": Object { "column": 0, + "index": 1912, "line": 114, }, }, @@ -9841,63 +8790,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is an async method", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 1911, "line": 113, }, "start": Object { "column": 0, + "index": 1877, "line": 111, }, }, @@ -9923,6 +8837,7 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -9930,10 +8845,12 @@ It takes a ", "loc": Object { "end": Object { "column": 36, + "index": 2079, "line": 122, }, "start": Object { "column": 0, + "index": 2043, "line": 122, }, }, @@ -9943,63 +8860,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 2042, "line": 121, }, "start": Object { "column": 0, + "index": 1963, "line": 118, }, }, @@ -10027,51 +8909,13 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -10095,6 +8939,7 @@ It takes a ", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -10102,10 +8947,12 @@ It takes a ", "loc": Object { "end": Object { "column": 1, + "index": 2208, "line": 129, }, "start": Object { "column": 0, + "index": 2145, "line": 127, }, }, @@ -10115,63 +8962,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 53, - "line": 1, - "offset": 52, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support of optional parameters in ES6", }, ], - "position": Object { - "end": Object { - "column": 53, - "line": 1, - "offset": 52, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 53, - "line": 1, - "offset": 52, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 2144, "line": 126, }, "start": Object { "column": 0, + "index": 2081, "line": 124, }, }, @@ -10204,6 +9016,7 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "access": "protected", @@ -10212,10 +9025,12 @@ It takes a ", "loc": Object { "end": Object { "column": 26, + "index": 2368, "line": 143, }, "start": Object { "column": 0, + "index": 2342, "line": 143, }, }, @@ -10225,63 +9040,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A protected function", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 2341, "line": 142, }, "start": Object { "column": 0, + "index": 2296, "line": 139, }, }, @@ -10313,6 +9093,7 @@ It takes a ", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "access": "public", @@ -10321,10 +9102,12 @@ It takes a ", "loc": Object { "end": Object { "column": 23, + "index": 2433, "line": 149, }, "start": Object { "column": 0, + "index": 2410, "line": 149, }, }, @@ -10334,63 +9117,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A public function", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 2409, "line": 148, }, "start": Object { "column": 0, + "index": 2370, "line": 145, }, }, @@ -10422,6 +9170,7 @@ It takes a ", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -10429,10 +9178,12 @@ It takes a ", "loc": Object { "end": Object { "column": 42, + "index": 2610, "line": 160, }, "start": Object { "column": 0, + "index": 2568, "line": 160, }, }, @@ -10442,62 +9193,27 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is re-exported", }, ], - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 3, + "index": 2567, "line": 159, }, "start": Object { "column": 0, + "index": 2537, "line": 157, }, }, @@ -10522,6 +9238,7 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -10529,10 +9246,12 @@ It takes a ", "loc": Object { "end": Object { "column": 1, + "index": 2819, "line": 169, }, "start": Object { "column": 0, + "index": 2645, "line": 163, }, }, @@ -10542,63 +9261,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Regression check for #498", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 32, + "index": 2644, "line": 162, }, "start": Object { "column": 0, + "index": 2612, "line": 162, }, }, @@ -10700,6 +9384,7 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -10707,10 +9392,12 @@ It takes a ", "loc": Object { "end": Object { "column": 1, + "index": 2936, "line": 174, }, "start": Object { "column": 0, + "index": 2854, "line": 172, }, }, @@ -10720,63 +9407,28 @@ It takes a ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Regression check for #749", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 32, + "index": 2853, "line": 171, }, "start": Object { "column": 0, + "index": 2821, "line": 171, }, }, @@ -10820,141 +9472,474 @@ It takes a ", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, -] -`; - -exports[`outputs es6.input.js markdown 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"`; - -exports[`outputs es6.input.js markdown AST 1`] = ` -Object { - "children": Array [ - Object { - "type": "html", - "value": "", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "destructure", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 33, - "line": 2, - "offset": 88, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This function destructures with defaults. It should not -have any parameter descriptions.", - }, - ], - "position": Position { + Object { + "augments": Array [], + "context": Object { + "loc": Object { "end": Object { - "column": 33, - "line": 2, - "offset": 88, + "column": 1, + "index": 3228, + "line": 189, }, - "indent": Array [ - 1, - ], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 0, + "index": 2966, + "line": 177, }, }, - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Parameters", - }, - ], - "depth": 3, - "type": "heading", }, - Object { + "description": Object { "children": Array [ Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "$0", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Object", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": " (optional, default ", - }, - Object { - "type": "inlineCode", - "value": "{}", - }, - Object { - "type": "text", - "value": ")", - }, - ], - "type": "paragraph", - }, - ], - "type": "paragraph", + "type": "text", + "value": "babel parser plugins", }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "class", + "loc": Object { + "end": Object { + "column": 27, + "index": 2965, + "line": 176, + }, + "start": Object { + "column": 0, + "index": 2938, + "line": 176, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "A", + "namespace": "A", + "params": Array [], + "path": Array [ + Object { + "kind": "class", + "name": "A", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, +] +`; + +exports[`outputs es6.input.js markdown 1`] = ` +" + +### Table of Contents + +* [destructure][1] + * [Parameters][2] +* [destructure2][3] + * [Parameters][4] + * [Examples][5] +* [multiply][6] + * [Parameters][7] +* [Sink][8] + * [Parameters][9] + * [Examples][10] + * [staticProp][11] + * [empty][12] + * [classprop][13] + * [Parameters][14] + * [aGetter][15] + * [hello][16] +* [makeABasket][17] +* [makeASink][18] +* [functionWithRest][19] + * [Parameters][20] +* [functionWithRestAndType][21] + * [Parameters][22] +* [foo][23] +* [es6.input][24] +* [veryImportantTransform][25] + * [Parameters][26] +* [iAmProtected][27] +* [iAmPublic][28] +* [execute][29] +* [isArrayEqualWith][30] + * [Parameters][31] +* [paramWithMemberType][32] + * [Parameters][33] +* [A][34] + +## destructure + +This function destructures with defaults. It should not +have any parameter descriptions. + +### Parameters + +* \`$0\` **[Object][35]** (optional, default \`{}\`) + + * \`$0.phoneNumbers\` (optional, default \`[]\`) + * \`$0.emailAddresses\` (optional, default \`[]\`) + * \`$0.params\` **...any** + +## destructure2 + +Similar, but with an array + +### Parameters + +* \`$0\` **[Array][36]** + + * \`$0.0\` + * \`$0.1\` + * \`$0.2\` + * \`$0.3\` + +### Examples + +\`\`\`javascript +destructure2([0, 1, 2, 3]) +\`\`\` + +## multiply + +This function returns the number one. + +### Parameters + +* \`a\` **[Array][36]<[Number][37]>** an array of numbers +* \`b\` + +Returns **[Number][37]** numberone + +## Sink + +This is a sink + +### Parameters + +* \`height\` **[number][37]** the height of the thing +* \`width\` **[number][37]** the width of the thing + +### Examples + +\`\`\`javascript +@abc +class A { + @bind + say() {} +} +\`\`\` + +### staticProp + +This is a property of the sink. + +### empty + +Is it empty + +### classprop + +This uses the class property transform + +#### Parameters + +* \`a\` **[number][37]** + +Returns **[string][38]** + +### aGetter + +This is a getter method: it should be documented +as a property. + +### hello + +This method says hello + +## makeABasket + +This method returns a basket. The type should not be linked. + +Returns **Basket** a basket + +## makeASink + +This method returns a [sink][8]. The type should be linked. +It takes a [number][37] which should also be linked. + +Returns **[Sink][8]** a sink + +## functionWithRest + +This function takes rest params + +### Parameters + +* \`someParams\` **...any** + +## functionWithRestAndType + +So does this one, with types + +### Parameters + +* \`someParams\` **...[number][37]** + +## foo + +This is an async method + +## es6.input + +This function returns the number one. + +Returns **[Number][37]** numberone + +## veryImportantTransform + +This tests our support of optional parameters in ES6 + +### Parameters + +* \`foo\` (optional, default \`'bar'\`) + +## iAmProtected + +A protected function + +## iAmPublic + +A public function + +## execute + +This is re-exported + +## isArrayEqualWith + +Regression check for #498 + +### Parameters + +* \`array1\` **[Array][36]\\\\** +* \`array2\` **[Array][36]\\\\** +* \`compareFunction\` **function (a: T, b: T): [boolean][39]** (optional, default \`(a:T,b:T):boolean=>a===b\`) + +Returns **[boolean][39]** + +## paramWithMemberType + +Regression check for #749 + +### Parameters + +* \`a\` **atype.property** + +Returns **[boolean][39]** + +## A + +babel parser plugins + +[1]: #destructure + +[2]: #parameters + +[3]: #destructure2 + +[4]: #parameters-1 + +[5]: #examples + +[6]: #multiply + +[7]: #parameters-2 + +[8]: #sink + +[9]: #parameters-3 + +[10]: #examples-1 + +[11]: #staticprop + +[12]: #empty + +[13]: #classprop + +[14]: #parameters-4 + +[15]: #agetter + +[16]: #hello + +[17]: #makeabasket + +[18]: #makeasink + +[19]: #functionwithrest + +[20]: #parameters-5 + +[21]: #functionwithrestandtype + +[22]: #parameters-6 + +[23]: #foo + +[24]: #es6input + +[25]: #veryimportanttransform + +[26]: #parameters-7 + +[27]: #iamprotected + +[28]: #iampublic + +[29]: #execute + +[30]: #isarrayequalwith + +[31]: #parameters-8 + +[32]: #paramwithmembertype + +[33]: #parameters-9 + +[34]: #a + +[35]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object + +[36]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array + +[37]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[38]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[39]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +" +`; + +exports[`outputs es6.input.js markdown AST 1`] = ` +Object { + "children": Array [ + Object { + "type": "html", + "value": "", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "destructure", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This function destructures with defaults. It should not +have any parameter descriptions.", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Parameters", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Object", + }, + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": " (optional, default ", + }, + Object { + "type": "inlineCode", + "value": "{}", + }, + Object { + "type": "text", + "value": ")", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", "value": "$0.phoneNumbers", }, Object { @@ -10963,159 +9948,668 @@ have any parameter descriptions.", }, Object { "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": " (optional, default ", - }, - Object { - "type": "inlineCode", - "value": "[]", - }, - Object { - "type": "text", - "value": ")", - }, - ], - "type": "paragraph", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": " (optional, default ", + }, + Object { + "type": "inlineCode", + "value": "[]", + }, + Object { + "type": "text", + "value": ")", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0.emailAddresses", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": " (optional, default ", + }, + Object { + "type": "inlineCode", + "value": "[]", + }, + Object { + "type": "text", + "value": ")", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0.params", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "...", + }, + Object { + "type": "text", + "value": "any", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "destructure2", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Similar, but with an array", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Parameters", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Array", + }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0.0", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0.1", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0.2", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "$0.3", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Examples", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "lang": "javascript", + "type": "code", + "value": "destructure2([0, 1, 2, 3])", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "multiply", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This function returns the number one.", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Parameters", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "a", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Array", + }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": "<", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Number", + }, + ], + "identifier": "3", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": ">", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "an array of numbers", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "b", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Returns ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Number", + }, + ], + "identifier": "3", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "numberone", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Sink", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is a sink", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Parameters", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "height", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "number", }, ], - "type": "paragraph", + "identifier": "3", + "referenceType": "full", + "type": "linkReference", }, ], - "type": "listItem", + "type": "strong", + }, + Object { + "type": "text", + "value": " ", }, Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "$0.emailAddresses", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": " (optional, default ", - }, - Object { - "type": "inlineCode", - "value": "[]", - }, - Object { - "type": "text", - "value": ")", - }, - ], - "type": "paragraph", - }, - ], - "type": "paragraph", + "type": "text", + "value": "the height of the thing", }, ], - "type": "listItem", + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "width", + }, + Object { + "type": "text", + "value": " ", }, Object { "children": Array [ Object { "children": Array [ - Object { - "type": "inlineCode", - "value": "$0.params", - }, Object { "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "...", - }, - Object { - "type": "text", - "value": "any", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", + "value": "number", }, ], - "type": "paragraph", + "identifier": "3", + "referenceType": "full", + "type": "linkReference", }, ], - "type": "listItem", + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "the width of the thing", + }, + ], + "type": "paragraph", }, ], - "ordered": false, - "type": "list", + "type": "paragraph", }, ], "type": "listItem", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "children": Array [ Object { "type": "text", - "value": "destructure", + "value": "Examples", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "lang": "javascript", + "type": "code", + "value": "@abc +class A { + @bind + say() {} +}", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "staticProp", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is a property of the sink.", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "empty", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Is it empty", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "classprop", }, ], - "depth": 2, + "depth": 3, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Similar, but with an array", + "value": "This uses the class property transform", }, ], - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -11125,7 +10619,7 @@ have any parameter descriptions.", "value": "Parameters", }, ], - "depth": 3, + "depth": 4, "type": "heading", }, Object { @@ -11136,7 +10630,7 @@ have any parameter descriptions.", "children": Array [ Object { "type": "inlineCode", - "value": "$0", + "value": "a", }, Object { "type": "text", @@ -11148,10 +10642,10 @@ have any parameter descriptions.", "children": Array [ Object { "type": "text", - "value": "Array", + "value": "number", }, ], - "identifier": "2", + "identifier": "3", "referenceType": "full", "type": "linkReference", }, @@ -11165,274 +10659,181 @@ have any parameter descriptions.", ], "type": "paragraph", }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Returns ", + }, + Object { + "children": Array [ Object { "children": Array [ Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "$0.0", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "$0.1", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "$0.2", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", + "type": "text", + "value": "string", }, ], - "ordered": false, - "type": "list", + "identifier": "4", + "referenceType": "full", + "type": "linkReference", }, ], - "type": "listItem", + "type": "strong", + }, + Object { + "type": "text", + "value": " ", }, ], - "ordered": false, - "type": "list", + "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Examples", + "value": "aGetter", }, ], "depth": 3, "type": "heading", }, Object { - "lang": "javascript", - "type": "code", - "value": "destructure([1, 2, 3])", + "children": Array [ + Object { + "type": "text", + "value": "This is a getter method: it should be documented +as a property.", + }, + ], + "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "multiply", + "value": "hello", }, ], - "depth": 2, + "depth": 3, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This function returns the number one.", + "value": "This method says hello", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Parameters", + "value": "makeABasket", }, ], - "depth": 3, + "depth": 2, "type": "heading", }, Object { "children": Array [ + Object { + "type": "text", + "value": "This method returns a basket. The type should not be linked.", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Returns ", + }, Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "a", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Array", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": "<", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Number", - }, - ], - "identifier": "3", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": ">", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "an array of numbers", - }, - ], - "position": Position { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "type": "paragraph", + "type": "text", + "value": "Basket", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "a basket", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "makeASink", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This method returns a ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "sink", }, ], - "type": "listItem", + "identifier": "5", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": ". The type should be linked. +It takes a ", }, Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "b", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", + "type": "text", + "value": "number", }, ], - "type": "listItem", + "identifier": "3", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": " which should also be linked.", }, ], - "ordered": false, - "type": "list", + "type": "paragraph", }, Object { "children": Array [ @@ -11446,10 +10847,10 @@ have any parameter descriptions.", "children": Array [ Object { "type": "text", - "value": "Number", + "value": "Sink", }, ], - "identifier": "3", + "identifier": "5", "referenceType": "full", "type": "linkReference", }, @@ -11463,36 +10864,10 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "numberone", + "value": "a sink", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -11502,7 +10877,7 @@ have any parameter descriptions.", "children": Array [ Object { "type": "text", - "value": "Sink", + "value": "functionWithRest", }, ], "depth": 2, @@ -11511,36 +10886,10 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is a sink", + "value": "This function takes rest params", }, ], - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -11561,27 +10910,7 @@ have any parameter descriptions.", "children": Array [ Object { "type": "inlineCode", - "value": "height", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "number", - }, - ], - "identifier": "3", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", + "value": "someParams", }, Object { "type": "text", @@ -11590,68 +10919,12 @@ have any parameter descriptions.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "the height of the thing", - }, - ], - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "value": "...", }, - }, - "type": "paragraph", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "width", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ Object { - "children": Array [ - Object { - "type": "text", - "value": "number", - }, - ], - "identifier": "3", - "referenceType": "full", - "type": "linkReference", + "type": "text", + "value": "any", }, ], "type": "strong", @@ -11660,41 +10933,6 @@ have any parameter descriptions.", "type": "text", "value": " ", }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "the width of the thing", - }, - ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, ], "type": "paragraph", }, @@ -11702,161 +10940,27 @@ have any parameter descriptions.", "type": "listItem", }, ], - "ordered": false, - "type": "list", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Examples", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "lang": "javascript", - "type": "code", - "value": "@abc -class A { - @bind - say() {} -}", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "staticProp", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is a property of the sink.", - }, - ], - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "empty", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "Is it empty", - }, - ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "ordered": false, + "spread": false, + "type": "list", }, Object { "children": Array [ Object { "type": "text", - "value": "classprop", + "value": "functionWithRestAndType", }, ], - "depth": 3, + "depth": 2, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This uses the class property transform", + "value": "So does this one, with types", }, ], - "position": Position { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -11866,7 +10970,7 @@ class A { "value": "Parameters", }, ], - "depth": 4, + "depth": 3, "type": "heading", }, Object { @@ -11877,7 +10981,7 @@ class A { "children": Array [ Object { "type": "inlineCode", - "value": "a", + "value": "someParams", }, Object { "type": "text", @@ -11885,6 +10989,10 @@ class A { }, Object { "children": Array [ + Object { + "type": "text", + "value": "...", + }, Object { "children": Array [ Object { @@ -11911,137 +11019,33 @@ class A { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "children": Array [ Object { "type": "text", - "value": "Returns ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "string", - }, - ], - "identifier": "4", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "aGetter", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 15, - "line": 2, - "offset": 63, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is a getter method: it should be documented -as a property.", - }, - ], - "position": Position { - "end": Object { - "column": 15, - "line": 2, - "offset": 63, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "hello", + "value": "foo", }, ], - "depth": 3, + "depth": 2, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This method says hello", + "value": "This is an async method", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "makeABasket", + "value": "es6.input", }, ], "depth": 2, @@ -12050,36 +11054,10 @@ as a property.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 61, - "line": 1, - "offset": 60, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This method returns a basket. The type should not be linked.", + "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 61, - "line": 1, - "offset": 60, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -12091,8 +11069,15 @@ as a property.", Object { "children": Array [ Object { - "type": "text", - "value": "Basket", + "children": Array [ + Object { + "type": "text", + "value": "Number", + }, + ], + "identifier": "3", + "referenceType": "full", + "type": "linkReference", }, ], "type": "strong", @@ -12104,36 +11089,10 @@ as a property.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "a basket", + "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -12143,7 +11102,7 @@ as a property.", "children": Array [ Object { "type": "text", - "value": "makeASink", + "value": "veryImportantTransform", }, ], "depth": 2, @@ -12152,159 +11111,121 @@ as a property.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This method returns a ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "sink", - }, - ], - "identifier": "5", - "referenceType": "full", - "type": "linkReference", + "value": "This tests our support of optional parameters in ES6", }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 2, - "offset": 79, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 40, - "line": 1, - "offset": 39, - }, - }, "type": "text", - "value": ". The type should be linked. -It takes a ", + "value": "Parameters", }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ Object { "children": Array [ Object { - "type": "text", - "value": "number", + "children": Array [ + Object { + "type": "inlineCode", + "value": "foo", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": " (optional, default ", + }, + Object { + "type": "inlineCode", + "value": "'bar'", + }, + Object { + "type": "text", + "value": ")", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", }, ], - "identifier": "6", - "referenceType": "full", - "type": "linkReference", + "type": "listItem", }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ Object { - "position": Position { - "end": Object { - "column": 55, - "line": 2, - "offset": 122, - }, - "indent": Array [], - "start": Object { - "column": 26, - "line": 2, - "offset": 93, - }, - }, "type": "text", - "value": " which should also be linked.", + "value": "iAmProtected", }, ], - "position": Position { - "end": Object { - "column": 55, - "line": 2, - "offset": 122, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "A protected function", }, - }, + ], "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Returns ", + "value": "iAmPublic", }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Sink", - }, - ], - "identifier": "7", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", + "type": "text", + "value": "A public function", }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ Object { "type": "text", - "value": " ", + "value": "execute", }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "a sink", - }, - ], - "position": Position { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "type": "text", + "value": "This is re-exported", }, ], "type": "paragraph", @@ -12313,7 +11234,7 @@ It takes a ", "children": Array [ Object { "type": "text", - "value": "functionWithRest", + "value": "isArrayEqualWith", }, ], "depth": 2, @@ -12322,36 +11243,10 @@ It takes a ", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This function takes rest params", + "value": "Regression check for #498", }, ], - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -12372,7 +11267,7 @@ It takes a ", "children": Array [ Object { "type": "inlineCode", - "value": "someParams", + "value": "array1", }, Object { "type": "text", @@ -12380,13 +11275,148 @@ It takes a ", }, Object { "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Array", + }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", + }, Object { "type": "text", - "value": "...", + "value": "<", }, Object { "type": "text", - "value": "any", + "value": "T", + }, + Object { + "type": "text", + "value": ">", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "array2", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Array", + }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": "<", + }, + Object { + "type": "text", + "value": "T", + }, + Object { + "type": "text", + "value": ">", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "compareFunction", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "function (", + }, + Object { + "type": "text", + "value": "a: ", + }, + Object { + "type": "text", + "value": "T", + }, + Object { + "type": "text", + "value": ", ", + }, + Object { + "type": "text", + "value": "b: ", + }, + Object { + "type": "text", + "value": "T", + }, + Object { + "type": "text", + "value": ")", + }, + Object { + "type": "text", + "value": ": ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "boolean", + }, + ], + "identifier": "6", + "referenceType": "full", + "type": "linkReference", }, ], "type": "strong", @@ -12395,6 +11425,23 @@ It takes a ", "type": "text", "value": " ", }, + Object { + "children": Array [ + Object { + "type": "text", + "value": " (optional, default ", + }, + Object { + "type": "inlineCode", + "value": "(a:T,b:T):boolean=>a===b", + }, + Object { + "type": "text", + "value": ")", + }, + ], + "type": "paragraph", + }, ], "type": "paragraph", }, @@ -12403,13 +11450,43 @@ It takes a ", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "children": Array [ Object { "type": "text", - "value": "functionWithRestAndType", + "value": "Returns ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "boolean", + }, + ], + "identifier": "6", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "paramWithMemberType", }, ], "depth": 2, @@ -12418,36 +11495,10 @@ It takes a ", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "So does this one, with types", + "value": "Regression check for #749", }, ], - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -12468,7 +11519,7 @@ It takes a ", "children": Array [ Object { "type": "inlineCode", - "value": "someParams", + "value": "a", }, Object { "type": "text", @@ -12478,18 +11529,7 @@ It takes a ", "children": Array [ Object { "type": "text", - "value": "...", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "number", - }, - ], - "identifier": "3", - "referenceType": "full", - "type": "linkReference", + "value": "atype.property", }, ], "type": "strong", @@ -12506,98 +11546,9 @@ It takes a ", }, ], "ordered": false, + "spread": false, "type": "list", }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "foo", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is an async method", - }, - ], - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "es6.input", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This function returns the number one.", - }, - ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, Object { "children": Array [ Object { @@ -12610,10 +11561,10 @@ It takes a ", "children": Array [ Object { "type": "text", - "value": "Number", + "value": "boolean", }, ], - "identifier": "3", + "identifier": "6", "referenceType": "full", "type": "linkReference", }, @@ -12624,41 +11575,6 @@ It takes a ", "type": "text", "value": " ", }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "numberone", - }, - ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, ], "type": "paragraph", }, @@ -12666,7 +11582,7 @@ It takes a ", "children": Array [ Object { "type": "text", - "value": "veryImportantTransform", + "value": "A", }, ], "depth": 2, @@ -12675,281 +11591,490 @@ It takes a ", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 53, - "line": 1, - "offset": 52, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This tests our support of optional parameters in ES6", + "value": "babel parser plugins", }, ], - "position": Position { - "end": Object { - "column": 53, - "line": 1, - "offset": 52, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { - "children": Array [ - Object { - "type": "text", - "value": "Parameters", - }, - ], - "depth": 3, - "type": "heading", + "identifier": "1", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", }, Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "foo", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": " (optional, default ", - }, - Object { - "type": "inlineCode", - "value": "'bar'", - }, - Object { - "type": "text", - "value": ")", - }, - ], - "type": "paragraph", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", + "identifier": "2", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", + }, + Object { + "identifier": "3", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", + }, + Object { + "identifier": "4", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", + }, + Object { + "identifier": "5", + "title": "", + "type": "definition", + "url": "#sink", + }, + Object { + "identifier": "6", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", + }, + ], + "type": "root", +} +`; + +exports[`outputs es6.input.js no markdown TOC 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"`; + +exports[`outputs es6-class.input.js JSON 1`] = ` +Array [ + Object { + "augments": Array [ + Object { + "name": "React.Component", + "title": "augments", + }, + ], + "context": Object { + "loc": Object { + "end": Object { + "column": 36, + "index": 93, + "line": 4, }, - ], - "ordered": false, - "type": "list", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "iAmProtected", + "start": Object { + "column": 0, + "index": 57, + "line": 4, }, - ], - "depth": 2, - "type": "heading", + }, }, - Object { + "description": Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "children": Array [ + Object { + "type": "text", + "value": "This is my component. This is from issue #458", }, - }, - "type": "text", - "value": "A protected function", + ], + "type": "paragraph", }, ], - "position": Position { + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "class", + "loc": Object { + "end": Object { + "column": 3, + "index": 56, + "line": 3, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "Foo", + "namespace": "Foo", + "params": Array [], + "path": Array [ + Object { + "kind": "class", + "name": "Foo", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { "end": Object { - "column": 21, - "line": 1, - "offset": 20, + "column": 1, + "index": 295, + "line": 18, }, - "indent": Array [], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 0, + "index": 167, + "line": 10, }, }, - "type": "paragraph", }, - Object { + "description": Object { "children": Array [ Object { - "type": "text", - "value": "iAmPublic", + "children": Array [ + Object { + "type": "text", + "value": "Does nothing. This is from issue #556", + }, + ], + "type": "paragraph", }, ], - "depth": 2, - "type": "heading", + "type": "root", }, - Object { - "children": Array [ + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "class", + "loc": Object { + "end": Object { + "column": 3, + "index": 166, + "line": 9, + }, + "start": Object { + "column": 0, + "index": 95, + "line": 6, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [ Object { - "position": Position { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 18, + "index": 289, + "line": 16, + }, + "start": Object { + "column": 4, + "index": 275, + "line": 16, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "A useless property", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "loc": Object { "end": Object { - "column": 18, - "line": 1, - "offset": 17, + "column": 7, + "index": 270, + "line": 15, }, - "indent": Array [], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 4, + "index": 211, + "line": 12, }, }, - "type": "text", - "value": "A public function", + "memberof": "Bar", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "bar", + "namespace": "Bar#bar", + "params": Array [], + "path": Array [ + Object { + "kind": "class", + "name": "Bar", + }, + Object { + "name": "bar", + "scope": "instance", + }, + ], + "properties": Array [], + "returns": Array [], + "scope": "instance", + "sees": Array [], + "tags": Array [ + Object { + "description": null, + "lineNumber": 2, + "title": "type", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, + ], + "throws": Array [], + "todos": Array [], + "type": Object { + "name": "string", + "type": "NameExpression", + }, + "yields": Array [], }, ], - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "static": Array [], }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "execute", + "name": "Bar", + "namespace": "Bar", + "params": Array [ + Object { + "lineNumber": 2, + "name": "str", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 20, - "line": 1, - "offset": 19, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is re-exported", + }, + ], + "path": Array [ + Object { + "kind": "class", + "name": "Bar", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [ + Object { + "description": null, + "lineNumber": 2, + "name": "str", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", }, - ], - "position": Position { + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { "end": Object { - "column": 20, - "line": 1, - "offset": 19, + "column": 1, + "index": 428, + "line": 25, }, - "indent": Array [], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 0, + "index": 362, + "line": 23, }, }, - "type": "paragraph", }, - Object { + "description": Object { "children": Array [ Object { - "type": "text", - "value": "isArrayEqualWith", + "children": Array [ + Object { + "type": "text", + "value": "This class has fully inferred constructor parameters.", + }, + ], + "type": "paragraph", }, ], - "depth": 2, - "type": "heading", + "type": "root", }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "class", + "loc": Object { + "end": Object { + "column": 3, + "index": 361, + "line": 22, + }, + "start": Object { + "column": 0, + "index": 297, + "line": 20, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "Baz", + "namespace": "Baz", + "params": Array [ + Object { + "lineNumber": 24, + "name": "n", + "title": "param", + "type": Object { + "name": "number", + "type": "NameExpression", + }, + }, + Object { + "lineNumber": 24, + "name": "l", + "title": "param", + "type": Object { + "applications": Array [ + Object { + "name": "string", + "type": "NameExpression", }, + ], + "expression": Object { + "name": "Array", + "type": "NameExpression", }, - "type": "text", - "value": "Regression check for #498", - }, - ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "type": "TypeApplication", }, }, - "type": "paragraph", + ], + "path": Array [ + Object { + "kind": "class", + "name": "Baz", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, +] +`; + +exports[`outputs es6-class.input.js markdown 1`] = ` +" + +### Table of Contents + +* [Foo][1] +* [Bar][2] + * [Parameters][3] + * [bar][4] +* [Baz][5] + * [Parameters][6] + +## Foo + +**Extends React.Component** + +This is my component. This is from issue #458 + +## Bar + +Does nothing. This is from issue #556 + +### Parameters + +* \`str\` **[string][7]** + +### bar + +A useless property + +Type: [string][7] + +## Baz + +This class has fully inferred constructor parameters. + +### Parameters + +* \`n\` **[number][8]** +* \`l\` **[Array][9]<[string][7]>** + +[1]: #foo + +[2]: #bar + +[3]: #parameters + +[4]: #bar-1 + +[5]: #baz + +[6]: #parameters-1 + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array +" +`; + +exports[`outputs es6-class.input.js markdown AST 1`] = ` +Object { + "children": Array [ + Object { + "type": "html", + "value": "", }, Object { "children": Array [ Object { "type": "text", - "value": "Parameters", + "value": "Foo", }, ], - "depth": 3, + "depth": 2, "type": "heading", }, Object { @@ -12957,110 +12082,66 @@ It takes a ", Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "array1", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Array", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": "<", - }, - Object { - "type": "text", - "value": "T", - }, - Object { - "type": "text", - "value": ">", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "array2", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Array", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": "<", - }, - Object { - "type": "text", - "value": "T", - }, - Object { - "type": "text", - "value": ">", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", + "type": "text", + "value": "Extends ", + }, + Object { + "type": "text", + "value": "React.Component", }, ], - "type": "listItem", + "type": "strong", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is my component. This is from issue #458", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Bar", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Does nothing. This is from issue #556", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Parameters", }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ Object { "children": Array [ Object { "children": Array [ Object { "type": "inlineCode", - "value": "compareFunction", + "value": "str", }, Object { "type": "text", @@ -13068,46 +12149,14 @@ It takes a ", }, Object { "children": Array [ - Object { - "type": "text", - "value": "function (", - }, - Object { - "type": "text", - "value": "a: ", - }, - Object { - "type": "text", - "value": "T", - }, - Object { - "type": "text", - "value": ", ", - }, - Object { - "type": "text", - "value": "b: ", - }, - Object { - "type": "text", - "value": "T", - }, - Object { - "type": "text", - "value": ")", - }, - Object { - "type": "text", - "value": ": ", - }, Object { "children": Array [ Object { "type": "text", - "value": "boolean", + "value": "string", }, ], - "identifier": "8", + "identifier": "1", "referenceType": "full", "type": "linkReference", }, @@ -13118,23 +12167,6 @@ It takes a ", "type": "text", "value": " ", }, - Object { - "children": Array [ - Object { - "type": "text", - "value": " (optional, default ", - }, - Object { - "type": "inlineCode", - "value": "(a:T,b:T):boolean=>a===b", - }, - Object { - "type": "text", - "value": ")", - }, - ], - "type": "paragraph", - }, ], "type": "paragraph", }, @@ -13143,33 +12175,44 @@ It takes a ", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "children": Array [ Object { "type": "text", - "value": "Returns ", + "value": "bar", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "A useless property", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Type: ", }, Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "text", - "value": "boolean", - }, - ], - "identifier": "8", - "referenceType": "full", - "type": "linkReference", + "type": "text", + "value": "string", }, ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", + "identifier": "1", + "referenceType": "full", + "type": "linkReference", }, ], "type": "paragraph", @@ -13178,7 +12221,7 @@ It takes a ", "children": Array [ Object { "type": "text", - "value": "paramWithMemberType", + "value": "Baz", }, ], "depth": 2, @@ -13187,36 +12230,10 @@ It takes a ", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Regression check for #749", + "value": "This class has fully inferred constructor parameters.", }, ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -13237,7 +12254,7 @@ It takes a ", "children": Array [ Object { "type": "inlineCode", - "value": "a", + "value": "n", }, Object { "type": "text", @@ -13246,8 +12263,15 @@ It takes a ", Object { "children": Array [ Object { - "type": "text", - "value": "atype.property", + "children": Array [ + Object { + "type": "text", + "value": "number", + }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", }, ], "type": "strong", @@ -13262,111 +12286,105 @@ It takes a ", ], "type": "listItem", }, - ], - "ordered": false, - "type": "list", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Returns ", - }, Object { "children": Array [ Object { "children": Array [ + Object { + "type": "inlineCode", + "value": "l", + }, Object { "type": "text", - "value": "boolean", + "value": " ", }, - ], - "identifier": "8", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - Object { - "identifier": "1", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", - }, - Object { - "identifier": "2", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", - }, - Object { - "identifier": "3", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Array", + }, + ], + "identifier": "3", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": "<", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "string", + }, + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": ">", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", + }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", }, Object { - "identifier": "4", - "title": undefined, + "identifier": "1", + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, Object { - "identifier": "5", - "title": null, - "type": "definition", - "url": "#sink", - }, - Object { - "identifier": "6", - "title": null, + "identifier": "2", + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { - "identifier": "7", - "title": undefined, - "type": "definition", - "url": "#sink", - }, - Object { - "identifier": "8", - "title": undefined, + "identifier": "3", + "title": "", "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", }, ], "type": "root", } `; -exports[`outputs es6.input.js no markdown TOC 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"`; - -exports[`outputs es6-class.input.js JSON 1`] = ` +exports[`outputs es6-class-property.input.js JSON 1`] = ` Array [ Object { - "augments": Array [ - Object { - "name": "React.Component", - "title": "augments", - }, - ], + "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 36, - "line": 4, + "column": 1, + "index": 361, + "line": 25, }, "start": Object { "column": 0, + "index": 34, "line": 4, }, }, @@ -13376,168 +12394,31 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 46, - "line": 1, - "offset": 45, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is my component. This is from issue #458", + "value": "This is for issue 906.", }, ], - "position": Object { - "end": Object { - "column": 46, - "line": 1, - "offset": 45, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 46, - "line": 1, - "offset": 45, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 33, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "Foo", - "namespace": "Foo", - "params": Array [], - "path": Array [ - Object { - "kind": "class", - "name": "Foo", - }, - ], - "properties": Array [], - "returns": Array [], - "sees": Array [], - "tags": Array [], - "throws": Array [], - "todos": Array [], - }, - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 18, - }, - "start": Object { - "column": 0, - "line": 10, - }, - }, - }, - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "Does nothing. This is from issue #556", - }, - ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "class", - "loc": Object { - "end": Object { - "column": 3, - "line": 9, - }, - "start": Object { - "column": 0, - "line": 6, - }, - }, "members": Object { "events": Array [], "global": Array [], @@ -13548,12 +12429,14 @@ Array [ "context": Object { "loc": Object { "end": Object { - "column": 18, - "line": 16, + "column": 3, + "index": 175, + "line": 11, }, "start": Object { - "column": 4, - "line": 16, + "column": 2, + "index": 129, + "line": 9, }, }, }, @@ -13562,66 +12445,32 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "A useless property", + "value": "This is a read-write property.", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], + "kind": "member", "loc": Object { "end": Object { - "column": 7, - "line": 15, + "column": 5, + "index": 126, + "line": 8, }, "start": Object { - "column": 4, - "line": 12, + "column": 2, + "index": 60, + "line": 5, }, }, - "memberof": "Bar", + "memberof": "Issue906", "members": Object { "events": Array [], "global": Array [], @@ -13629,16 +12478,17 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "bar", - "namespace": "Bar#bar", + "name": "readWriteProp", + "namespace": "Issue906#readWriteProp", "params": Array [], "path": Array [ Object { "kind": "class", - "name": "Bar", + "name": "Issue906", }, Object { - "name": "bar", + "kind": "member", + "name": "readWriteProp", "scope": "instance", }, ], @@ -13652,7 +12502,7 @@ Array [ "lineNumber": 2, "title": "type", "type": Object { - "name": "string", + "name": "boolean", "type": "NameExpression", }, }, @@ -13660,171 +12510,118 @@ Array [ "throws": Array [], "todos": Array [], "type": Object { - "name": "string", + "name": "boolean", "type": "NameExpression", }, + "yields": Array [], }, - ], - "static": Array [], - }, - "name": "Bar", - "namespace": "Bar", - "params": Array [ - Object { - "lineNumber": 2, - "name": "str", - "title": "param", - "type": Object { - "name": "string", - "type": "NameExpression", - }, - }, - ], - "path": Array [ - Object { - "kind": "class", - "name": "Bar", - }, - ], - "properties": Array [], - "returns": Array [], - "sees": Array [], - "tags": Array [ - Object { - "description": null, - "lineNumber": 2, - "name": "str", - "title": "param", - "type": Object { - "name": "string", - "type": "NameExpression", - }, - }, - ], - "throws": Array [], - "todos": Array [], - }, - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 25, - }, - "start": Object { - "column": 0, - "line": 23, - }, - }, - }, - "description": Object { - "children": Array [ Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 54, - "line": 1, - "offset": 53, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 3, + "index": 359, + "line": 24, + }, + "start": Object { + "column": 2, + "index": 317, + "line": 22, }, - "type": "text", - "value": "This class has fully inferred constructor parameters.", }, - ], - "position": Object { + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is a read-only property.", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "member", + "loc": Object { "end": Object { - "column": 54, - "line": 1, - "offset": 53, + "column": 5, + "index": 314, + "line": 21, }, - "indent": Array [], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 2, + "index": 235, + "line": 17, }, }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 54, - "line": 1, - "offset": 53, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "class", - "loc": Object { - "end": Object { - "column": 3, - "line": 22, - }, - "start": Object { - "column": 0, - "line": 20, - }, - }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "Baz", - "namespace": "Baz", - "params": Array [ - Object { - "lineNumber": 24, - "name": "n", - "title": "param", - "type": Object { - "name": "number", - "type": "NameExpression", - }, - }, - Object { - "lineNumber": 24, - "name": "l", - "title": "param", - "type": Object { - "applications": Array [ + "memberof": "Issue906", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "readOnlyProp", + "namespace": "Issue906#readOnlyProp", + "params": Array [], + "path": Array [ Object { - "name": "string", - "type": "NameExpression", + "kind": "class", + "name": "Issue906", + }, + Object { + "kind": "member", + "name": "readOnlyProp", + "scope": "instance", }, ], - "expression": Object { - "name": "Array", + "properties": Array [], + "readonly": true, + "returns": Array [], + "scope": "instance", + "sees": Array [], + "tags": Array [ + Object { + "description": null, + "lineNumber": 2, + "title": "type", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, + Object { + "description": null, + "lineNumber": 3, + "title": "readonly", + }, + ], + "throws": Array [], + "todos": Array [], + "type": Object { + "name": "string", "type": "NameExpression", }, - "type": "TypeApplication", + "yields": Array [], }, - }, - ], + ], + "static": Array [], + }, + "name": "Issue906", + "namespace": "Issue906", + "params": Array [], "path": Array [ Object { "kind": "class", - "name": "Baz", + "name": "Issue906", }, ], "properties": Array [], @@ -13833,13 +12630,49 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs es6-class.input.js markdown 1`] = `"[object Object],[object Object],[object Object]"`; +exports[`outputs es6-class-property.input.js markdown 1`] = ` +" -exports[`outputs es6-class.input.js markdown AST 1`] = ` +### Table of Contents + +* [Issue906][1] + * [readWriteProp][2] + * [readOnlyProp][3] + +## Issue906 + +This is for issue 906. + +### readWriteProp + +This is a read-write property. + +Type: [boolean][4] + +### readOnlyProp + +This is a read-only property. + +Type: [string][5] + +[1]: #issue906 + +[2]: #readwriteprop + +[3]: #readonlyprop + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +" +`; + +exports[`outputs es6-class-property.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -13850,7 +12683,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "Foo", + "value": "Issue906", }, ], "depth": 2, @@ -13859,160 +12692,56 @@ Object { Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "text", - "value": "Extends ", - }, - Object { - "type": "text", - "value": "React.Component", - }, - ], - "type": "strong", - }, - ], - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 46, - "line": 1, - "offset": 45, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is my component. This is from issue #458", + "value": "This is for issue 906.", }, ], - "position": Position { - "end": Object { - "column": 46, - "line": 1, - "offset": 45, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Bar", + "value": "readWriteProp", }, ], - "depth": 2, + "depth": 3, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Does nothing. This is from issue #556", + "value": "This is a read-write property.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Parameters", + "value": "Type: ", }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "str", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "string", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", + Object { + "children": Array [ + Object { + "type": "text", + "value": "boolean", }, ], - "type": "listItem", + "identifier": "1", + "referenceType": "full", + "type": "linkReference", }, ], - "ordered": false, - "type": "list", + "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "bar", + "value": "readOnlyProp", }, ], "depth": 3, @@ -14021,36 +12750,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "A useless property", + "value": "This is a read-only property.", }, ], - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -14066,7 +12769,7 @@ Object { "value": "string", }, ], - "identifier": "1", + "identifier": "2", "referenceType": "full", "type": "linkReference", }, @@ -14074,49 +12777,133 @@ Object { "type": "paragraph", }, Object { - "children": Array [ - Object { - "type": "text", - "value": "Baz", + "identifier": "1", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", + }, + Object { + "identifier": "2", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", + }, + ], + "type": "root", +} +`; + +exports[`outputs es6-default2.input.js JSON 1`] = ` +Array [ + Object { + "access": "public", + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 39, + "index": 58, + "line": 4, }, - ], - "depth": 2, - "type": "heading", + "start": Object { + "column": 0, + "index": 19, + "line": 4, + }, + }, + }, + "description": "", + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "function", + "loc": Object { + "end": Object { + "column": 3, + "index": 18, + "line": 3, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "es6-default2.input", + "namespace": "es6-default2.input", + "params": Array [ + Object { + "lineNumber": 4, + "name": "thisIsTheArgument", + "title": "param", + }, + ], + "path": Array [ + Object { + "kind": "function", + "name": "es6-default2.input", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [ + Object { + "description": null, + "lineNumber": 1, + "title": "public", + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, +] +`; + +exports[`outputs es6-default2.input.js markdown 1`] = ` +" + +### Table of Contents + +* [es6-default2.input][1] + * [Parameters][2] + +## es6-default2.input + +### Parameters + +* \`thisIsTheArgument\` + +[1]: #es6-default2input + +[2]: #parameters +" +`; + +exports[`outputs es6-default2.input.js markdown AST 1`] = ` +Object { + "children": Array [ + Object { + "type": "html", + "value": "", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 54, - "line": 1, - "offset": 53, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This class has fully inferred constructor parameters.", + "value": "es6-default2.input", }, ], - "position": Position { - "end": Object { - "column": 54, - "line": 1, - "offset": 53, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "depth": 2, + "type": "heading", }, Object { "children": Array [ @@ -14136,85 +12923,12 @@ Object { "children": Array [ Object { "type": "inlineCode", - "value": "n", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "number", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "l", + "value": "thisIsTheArgument", }, Object { "type": "text", "value": " ", }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Array", - }, - ], - "identifier": "3", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": "<", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "string", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": ">", - }, - ], - "type": "strong", - }, Object { "type": "text", "value": " ", @@ -14227,44 +12941,29 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, - Object { - "identifier": "1", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", - }, - Object { - "identifier": "2", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", - }, - Object { - "identifier": "3", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", - }, ], "type": "root", } `; -exports[`outputs es6-class-property.input.js JSON 1`] = ` +exports[`outputs es6-import.input.js JSON 1`] = ` Array [ Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 1, - "line": 25, + "column": 41, + "index": 435, + "line": 14, }, "start": Object { "column": 0, - "line": 4, + "index": 394, + "line": 14, }, }, }, @@ -14273,348 +12972,309 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is for issue 906.", + "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], - "kind": "class", + "implements": Array [], + "kind": "function", "loc": Object { "end": Object { "column": 3, - "line": 3, + "index": 393, + "line": 13, }, "start": Object { "column": 0, - "line": 1, + "index": 314, + "line": 10, }, }, "members": Object { "events": Array [], "global": Array [], "inner": Array [], - "instance": Array [ - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 11, - }, - "start": Object { - "column": 2, - "line": 9, - }, - }, - }, - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 31, - "line": 1, - "offset": 30, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is a read-write property.", - }, - ], - "position": Object { - "end": Object { - "column": 31, - "line": 1, - "offset": 30, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 31, - "line": 1, - "offset": 30, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "member", - "loc": Object { - "end": Object { - "column": 5, - "line": 8, - }, - "start": Object { - "column": 2, - "line": 5, - }, - }, - "memberof": "Issue906", - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "readWriteProp", - "namespace": "Issue906#readWriteProp", - "params": Array [], - "path": Array [ - Object { - "kind": "class", - "name": "Issue906", - }, - Object { - "kind": "member", - "name": "readWriteProp", - "scope": "instance", - }, - ], - "properties": Array [], - "returns": Array [], - "scope": "instance", - "sees": Array [], - "tags": Array [ + "instance": Array [], + "static": Array [], + }, + "name": "multiplyTwice", + "namespace": "multiplyTwice", + "params": Array [ + Object { + "lineNumber": 14, + "name": "a", + "title": "param", + }, + ], + "path": Array [ + Object { + "kind": "function", + "name": "multiplyTwice", + }, + ], + "properties": Array [], + "returns": Array [ + Object { + "description": Object { + "children": Array [ Object { - "description": null, - "lineNumber": 2, - "title": "type", - "type": Object { - "name": "boolean", - "type": "NameExpression", - }, + "children": Array [ + Object { + "type": "text", + "value": "numberone", + }, + ], + "type": "paragraph", }, ], - "throws": Array [], - "todos": Array [], - "type": Object { - "name": "boolean", - "type": "NameExpression", - }, + "type": "root", }, - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 24, - }, - "start": Object { - "column": 2, - "line": 22, - }, - }, - }, - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 30, - "line": 1, - "offset": 29, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is a read-only property.", - }, - ], - "position": Object { - "end": Object { - "column": 30, - "line": 1, - "offset": 29, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 30, - "line": 1, - "offset": 29, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "member", - "loc": Object { - "end": Object { - "column": 5, - "line": 21, - }, - "start": Object { - "column": 2, - "line": 17, - }, - }, - "memberof": "Issue906", - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "readOnlyProp", - "namespace": "Issue906#readOnlyProp", - "params": Array [], - "path": Array [ - Object { - "kind": "class", - "name": "Issue906", - }, + "title": "returns", + "type": Object { + "name": "Number", + "type": "NameExpression", + }, + }, + ], + "sees": Array [], + "tags": Array [ + Object { + "description": "numberone", + "lineNumber": 2, + "title": "returns", + "type": Object { + "name": "Number", + "type": "NameExpression", + }, + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 18, + "index": 63, + "line": 4, + }, + "start": Object { + "column": 0, + "index": 45, + "line": 4, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ Object { - "kind": "member", - "name": "readOnlyProp", - "scope": "instance", + "type": "text", + "value": "This is the default export frogs!", }, ], - "properties": Array [], - "readonly": true, - "returns": Array [], - "scope": "instance", - "sees": Array [], - "tags": Array [ - Object { - "description": null, - "lineNumber": 2, - "title": "type", - "type": Object { - "name": "string", - "type": "NameExpression", - }, - }, + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "loc": Object { + "end": Object { + "column": 3, + "index": 44, + "line": 3, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "es6-ext", + "namespace": "es6-ext", + "params": Array [], + "path": Array [ + Object { + "name": "es6-ext", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 2, + "index": 144, + "line": 8, + }, + "start": Object { + "column": 0, + "index": 80, + "line": 5, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ Object { - "description": null, - "lineNumber": 3, - "title": "readonly", + "type": "text", + "value": "This function returns the number one.", }, ], - "throws": Array [], - "todos": Array [], - "type": Object { - "name": "string", - "type": "NameExpression", - }, + "type": "paragraph", }, ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "function", + "loc": Object { + "end": Object { + "column": 3, + "index": 79, + "line": 4, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], "static": Array [], }, - "name": "Issue906", - "namespace": "Issue906", + "name": "simple.input", + "namespace": "simple.input", "params": Array [], "path": Array [ Object { - "kind": "class", - "name": "Issue906", + "kind": "function", + "name": "simple.input", }, ], "properties": Array [], - "returns": Array [], + "returns": Array [ + Object { + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "numberone", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "title": "returns", + "type": Object { + "name": "number", + "type": "NameExpression", + }, + }, + ], "sees": Array [], - "tags": Array [], + "tags": Array [ + Object { + "description": "numberone", + "lineNumber": 2, + "title": "returns", + "type": Object { + "name": "number", + "type": "NameExpression", + }, + }, + ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs es6-class-property.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs es6-import.input.js markdown 1`] = ` +" + +### Table of Contents -exports[`outputs es6-class-property.input.js markdown AST 1`] = ` +* [multiplyTwice][1] + * [Parameters][2] +* [es6-ext][3] +* [simple.input][4] + +## multiplyTwice + +This function returns the number one. + +### Parameters + +* \`a\` + +Returns **[Number][5]** numberone + +## es6-ext + +This is the default export frogs! + +## simple.input + +This function returns the number one. + +Returns **[number][5]** numberone + +[1]: #multiplytwice + +[2]: #parameters + +[3]: #es6-ext + +[4]: #simpleinput + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; + +exports[`outputs es6-import.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -14625,7 +13285,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "Issue906", + "value": "multiplyTwice", }, ], "depth": 2, @@ -14634,43 +13294,17 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is for issue 906.", + "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "readWriteProp", + "value": "Parameters", }, ], "depth": 3, @@ -14679,54 +13313,66 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 31, - "line": 1, - "offset": 30, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "children": Array [ + Object { + "children": Array [ + Object { + "type": "inlineCode", + "value": "a", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", }, - }, - "type": "text", - "value": "This is a read-write property.", + ], + "type": "listItem", }, ], - "position": Position { - "end": Object { - "column": 31, - "line": 1, - "offset": 30, + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Returns ", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Number", + }, + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", }, - }, - "type": "paragraph", - }, - Object { - "children": Array [ Object { "type": "text", - "value": "Type: ", + "value": " ", }, Object { "children": Array [ Object { "type": "text", - "value": "boolean", + "value": "numberone", }, ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", + "type": "paragraph", }, ], "type": "paragraph", @@ -14735,112 +13381,134 @@ Object { "children": Array [ Object { "type": "text", - "value": "readOnlyProp", + "value": "es6-ext", }, ], - "depth": 3, + "depth": 2, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 30, - "line": 1, - "offset": 29, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is a read-only property.", + "value": "This is the default export frogs!", }, ], - "position": Position { - "end": Object { - "column": 30, - "line": 1, - "offset": 29, + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "simple.input", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This function returns the number one.", }, - }, + ], "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Type: ", + "value": "Returns ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "number", + }, + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", }, Object { "children": Array [ Object { "type": "text", - "value": "string", + "value": "numberone", }, ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", + "type": "paragraph", }, ], "type": "paragraph", }, Object { "identifier": "1", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", - }, - Object { - "identifier": "2", - "title": undefined, + "title": "", "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, ], "type": "root", } `; -exports[`outputs es6-default2.input.js JSON 1`] = ` +exports[`outputs event.input.js JSON 1`] = ` Array [ Object { - "access": "public", "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 39, - "line": 4, + "column": 0, + "index": 185, + "line": 9, }, "start": Object { "column": 0, - "line": 4, + "index": 0, + "line": 1, }, }, }, - "description": "", + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Mouse event", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, "errors": Array [], "examples": Array [], - "kind": "function", + "implements": Array [], + "kind": "event", "loc": Object { "end": Object { "column": 3, - "line": 3, + "index": 184, + "line": 8, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -14851,40 +13519,142 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "es6-default2.input", - "namespace": "es6-default2.input", - "params": Array [ + "name": "Map#mousemove", + "namespace": ".event:Map#mousemove", + "params": Array [], + "path": Array [ Object { - "lineNumber": 4, - "name": "thisIsTheArgument", - "title": "param", + "kind": "event", + "name": "Map#mousemove", }, ], - "path": Array [ + "properties": Array [ Object { - "kind": "function", - "name": "es6-default2.input", + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "the pixel location of the event", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "lineNumber": 5, + "name": "point", + "title": "property", + "type": Object { + "name": "Point", + "type": "NameExpression", + }, + }, + Object { + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "the original DOM event", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "lineNumber": 6, + "name": "originalEvent", + "title": "property", + "type": Object { + "name": "Event", + "type": "NameExpression", + }, }, ], - "properties": Array [], "returns": Array [], "sees": Array [], "tags": Array [ + Object { + "description": "Map#mousemove", + "lineNumber": 3, + "title": "event", + }, Object { "description": null, - "lineNumber": 1, - "title": "public", + "lineNumber": 4, + "title": "type", + "type": Object { + "name": "Object", + "type": "NameExpression", + }, + }, + Object { + "description": "the pixel location of the event", + "lineNumber": 5, + "name": "point", + "title": "property", + "type": Object { + "name": "Point", + "type": "NameExpression", + }, + }, + Object { + "description": "the original DOM event", + "lineNumber": 6, + "name": "originalEvent", + "title": "property", + "type": Object { + "name": "Event", + "type": "NameExpression", + }, }, ], "throws": Array [], "todos": Array [], + "type": Object { + "name": "Object", + "type": "NameExpression", + }, + "yields": Array [], }, ] `; -exports[`outputs es6-default2.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs event.input.js markdown 1`] = ` +" + +### Table of Contents -exports[`outputs es6-default2.input.js markdown AST 1`] = ` +* [Map#mousemove][1] + * [Properties][2] + +## Map#mousemove + +Mouse event + +Type: [Object][3] + +### Properties + +* \`point\` **Point** the pixel location of the event +* \`originalEvent\` **[Event][4]** the original DOM event + +[1]: #mapmousemove + +[2]: #properties + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object + +[4]: https://developer.mozilla.org/docs/Web/API/Event +" +`; + +exports[`outputs event.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -14894,18 +13664,47 @@ Object { Object { "children": Array [ Object { - "type": "text", - "value": "es6-default2.input", + "type": "text", + "value": "Map#mousemove", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Mouse event", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Type: ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Object", + }, + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", }, ], - "depth": 2, - "type": "heading", + "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Parameters", + "value": "Properties", }, ], "depth": 3, @@ -14919,322 +13718,124 @@ Object { "children": Array [ Object { "type": "inlineCode", - "value": "thisIsTheArgument", + "value": "point", }, Object { "type": "text", "value": " ", }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Point", + }, + ], + "type": "strong", + }, Object { "type": "text", "value": " ", }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "the pixel location of the event", + }, + ], + "type": "paragraph", + }, ], "type": "paragraph", }, ], "type": "listItem", }, - ], - "ordered": false, - "type": "list", - }, - ], - "type": "root", -} -`; - -exports[`outputs es6-import.input.js JSON 1`] = ` -Array [ - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 41, - "line": 14, - }, - "start": Object { - "column": 0, - "line": 14, - }, - }, - }, - "description": Object { - "children": Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, + "children": Array [ + Object { + "type": "inlineCode", + "value": "originalEvent", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + Object { + "type": "text", + "value": " ", }, - }, - "type": "text", - "value": "This function returns the number one.", - }, - ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "function", - "loc": Object { - "end": Object { - "column": 3, - "line": 13, - }, - "start": Object { - "column": 0, - "line": 10, - }, - }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "multiplyTwice", - "namespace": "multiplyTwice", - "params": Array [ - Object { - "lineNumber": 14, - "name": "a", - "title": "param", - }, - ], - "path": Array [ - Object { - "kind": "function", - "name": "multiplyTwice", - }, - ], - "properties": Array [], - "returns": Array [ - Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Event", + }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", }, - }, + ], + "type": "strong", + }, + Object { "type": "text", - "value": "numberone", + "value": " ", }, - ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + Object { + "children": Array [ + Object { + "type": "text", + "value": "the original DOM event", + }, + ], + "type": "paragraph", }, - }, + ], "type": "paragraph", }, - ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, - }, - ], - "sees": Array [], - "tags": Array [ - Object { - "description": "numberone", - "lineNumber": 2, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, - }, - ], - "throws": Array [], - "todos": Array [], - }, - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 4, - }, - }, - }, - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This is the default export frogs!", - }, - ], - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "loc": Object { - "end": Object { - "column": 3, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 1, - }, + ], + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], + Object { + "identifier": "1", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", }, - "name": "es6-ext", - "namespace": "es6-ext", - "params": Array [], - "path": Array [ - Object { - "name": "es6-ext", - }, - ], - "properties": Array [], - "returns": Array [], - "sees": Array [], - "tags": Array [], - "throws": Array [], - "todos": Array [], - }, + Object { + "identifier": "2", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/API/Event", + }, + ], + "type": "root", +} +`; + +exports[`outputs example-caption.input.js JSON 1`] = ` +Array [ Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 2, - "line": 8, + "column": 1, + "index": 200, + "line": 10, }, "start": Object { "column": 0, - "line": 5, + "index": 150, + "line": 7, }, }, }, @@ -15243,63 +13844,46 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], - "examples": Array [], + "examples": Array [ + Object { + "caption": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "demonstrates how to run foo", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "description": "foo(1);", + }, + ], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, - "line": 4, + "index": 149, + "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -15310,13 +13894,13 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "simple.input", - "namespace": "simple.input", + "name": "foo", + "namespace": "foo", "params": Array [], "path": Array [ Object { "kind": "function", - "name": "simple.input", + "name": "foo", }, ], "properties": Array [], @@ -15327,56 +13911,18 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", "type": Object { - "name": "number", + "name": "Number", "type": "NameExpression", }, }, @@ -15388,20 +13934,55 @@ Array [ "lineNumber": 2, "title": "returns", "type": Object { - "name": "number", + "name": "Number", "type": "NameExpression", }, }, + Object { + "caption": "demonstrates how to run foo", + "description": "foo(1);", + "lineNumber": 3, + "title": "example", + }, ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs es6-import.input.js markdown 1`] = `"[object Object],[object Object],[object Object]"`; +exports[`outputs example-caption.input.js markdown 1`] = ` +" -exports[`outputs es6-import.input.js markdown AST 1`] = ` +### Table of Contents + +* [foo][1] + * [Examples][2] + +## foo + +This function returns the number one. + +### Examples + +demonstrates how to run foo + +\`\`\`javascript +foo(1); +\`\`\` + +Returns **[Number][3]** numberone + +[1]: #foo + +[2]: #examples + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; + +exports[`outputs example-caption.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -15412,154 +13993,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "multiplyTwice", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "This function returns the number one.", - }, - ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Parameters", - }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "a", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", - }, - ], - "ordered": false, - "type": "list", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Returns ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Number", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "numberone", - }, - ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "type": "paragraph", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "es6-ext", + "value": "foo", }, ], "depth": 2, @@ -15568,83 +14002,46 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This is the default export frogs!", + "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "simple.input", + "value": "Examples", }, ], - "depth": 2, + "depth": 3, "type": "heading", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "demonstrates how to run foo", + }, + ], + "type": "paragraph", }, - }, - "type": "text", - "value": "This function returns the number one.", + ], + "type": "root", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, + Object { + "lang": "javascript", + "type": "code", + "value": "foo(1);", + }, Object { "children": Array [ Object { @@ -15657,7 +14054,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "number", + "value": "Number", }, ], "identifier": "1", @@ -15674,36 +14071,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -15711,7 +14082,7 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -15720,19 +14091,21 @@ Object { } `; -exports[`outputs event.input.js JSON 1`] = ` +exports[`outputs external.input.js JSON 1`] = ` Array [ Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 0, - "line": 9, + "column": 1, + "index": 147, + "line": 10, }, "start": Object { "column": 0, - "line": 1, + "index": 113, + "line": 8, }, }, }, @@ -15741,64 +14114,37 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Mouse event", + "value": "I am in ", }, - ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, + Object { + "type": "inlineCode", + "value": "external.input.js", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + Object { + "type": "text", + "value": ".", }, - }, + ], "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], - "kind": "event", + "implements": Array [], + "kind": "function", "loc": Object { "end": Object { "column": 3, - "line": 8, + "index": 112, + "line": 7, }, "start": Object { "column": 0, - "line": 1, + "index": 73, + "line": 5, }, }, "members": Object { @@ -15808,190 +14154,42 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "Map#mousemove", - "namespace": ".event:Map#mousemove", + "name": "foo", + "namespace": "foo", "params": Array [], "path": Array [ Object { - "kind": "event", - "name": "Map#mousemove", - }, - ], - "properties": Array [ - Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "the pixel location of the event", - }, - ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "lineNumber": 5, - "name": "point", - "title": "property", - "type": Object { - "name": "Point", - "type": "NameExpression", - }, - }, - Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "the original DOM event", - }, - ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "lineNumber": 6, - "name": "originalEvent", - "title": "property", - "type": Object { - "name": "Event", - "type": "NameExpression", - }, + "kind": "function", + "name": "foo", }, ], + "properties": Array [], "returns": Array [], "sees": Array [], - "tags": Array [ - Object { - "description": "Map#mousemove", - "lineNumber": 3, - "title": "event", - }, - Object { - "description": null, - "lineNumber": 4, - "title": "type", - "type": Object { - "name": "Object", - "type": "NameExpression", - }, - }, - Object { - "description": "the pixel location of the event", - "lineNumber": 5, - "name": "point", - "title": "property", - "type": Object { - "name": "Point", - "type": "NameExpression", - }, - }, - Object { - "description": "the original DOM event", - "lineNumber": 6, - "name": "originalEvent", - "title": "property", - "type": Object { - "name": "Event", - "type": "NameExpression", - }, - }, - ], + "tags": Array [], "throws": Array [], "todos": Array [], - "type": Object { - "name": "Object", - "type": "NameExpression", - }, + "yields": Array [], }, ] `; -exports[`outputs event.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs external.input.js markdown 1`] = ` +" + +### Table of Contents -exports[`outputs event.input.js markdown AST 1`] = ` +* [foo][1] + +## foo + +I am in \`external.input.js\`. + +[1]: #foo +" +`; + +exports[`outputs external.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -16002,7 +14200,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "Map#mousemove", + "value": "foo", }, ], "depth": 2, @@ -16011,243 +14209,207 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Mouse event", + "value": "I am in ", + }, + Object { + "type": "inlineCode", + "value": "external.input.js", + }, + Object { + "type": "text", + "value": ".", }, ], - "position": Position { + "type": "paragraph", + }, + ], + "type": "root", +} +`; + +exports[`outputs factory.input.js JSON 1`] = ` +Array [ + Object { + "augments": Array [], + "context": Object { + "loc": Object { "end": Object { - "column": 12, - "line": 1, - "offset": 11, + "column": 2, + "index": 255, + "line": 18, }, - "indent": Array [], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 0, + "index": 60, + "line": 5, }, }, - "type": "paragraph", }, - Object { + "description": Object { "children": Array [ - Object { - "type": "text", - "value": "Type: ", - }, Object { "children": Array [ Object { "type": "text", - "value": "Object", + "value": "an area chart generator", }, ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", + "type": "paragraph", }, ], - "type": "paragraph", + "type": "root", }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Properties", - }, - ], - "depth": 3, - "type": "heading", + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "function", + "loc": Object { + "end": Object { + "column": 3, + "index": 59, + "line": 4, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, }, - Object { - "children": Array [ - Object { + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "area", + "namespace": "area", + "params": Array [], + "path": Array [ + Object { + "kind": "function", + "name": "area", + }, + ], + "properties": Array [], + "returns": Array [ + Object { + "description": Object { "children": Array [ Object { "children": Array [ - Object { - "type": "inlineCode", - "value": "point", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Point", - }, - ], - "type": "strong", - }, Object { "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "the pixel location of the event", - }, - ], - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "value": "chart", }, ], "type": "paragraph", }, ], - "type": "listItem", + "type": "root", }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "originalEvent", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Event", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "the original DOM event", - }, - ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", + "title": "returns", + "type": Object { + "name": "area", + "type": "NameExpression", }, - ], - "ordered": false, - "type": "list", + }, + ], + "sees": Array [], + "tags": Array [ + Object { + "description": "chart", + "lineNumber": 2, + "title": "returns", + "type": Object { + "name": "area", + "type": "NameExpression", + }, + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 37, + "index": 150, + "line": 9, + }, + "start": Object { + "column": 2, + "index": 115, + "line": 9, + }, + }, }, - Object { - "identifier": "1", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", + "description": "", + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "class", + "loc": Object { + "end": Object { + "column": 5, + "index": 112, + "line": 8, + }, + "start": Object { + "column": 2, + "index": 86, + "line": 6, + }, }, - Object { - "identifier": "2", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/API/Event", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], }, - ], - "type": "root", -} -`; - -exports[`outputs example-caption.input.js JSON 1`] = ` -Array [ + "name": "area", + "namespace": "area", + "params": Array [], + "path": Array [ + Object { + "kind": "class", + "name": "area", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [ + Object { + "description": null, + "lineNumber": 1, + "name": "area", + "title": "class", + "type": null, + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 1, - "line": 10, + "column": 30, + "index": 235, + "line": 15, }, "start": Object { - "column": 0, - "line": 7, + "column": 2, + "index": 207, + "line": 15, }, }, }, @@ -16256,122 +14418,37 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This function returns the number one.", + "value": "Sets the chart data.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "errors": Array [], - "examples": Array [ + "errors": Array [ Object { - "caption": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "demonstrates how to run foo", - }, - ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "description": "foo(1);", + "commentLineNumber": 0, + "message": "@memberof reference to chart not found", }, ], + "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 5, + "index": 204, + "line": 14, }, "start": Object { - "column": 0, - "line": 1, + "column": 2, + "index": 154, + "line": 11, }, }, + "memberof": "chart", "members": Object { "events": Array [], "global": Array [], @@ -16379,104 +14456,78 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "foo", - "namespace": "foo", - "params": Array [], - "path": Array [ + "name": "data", + "namespace": ".data", + "params": Array [ Object { - "kind": "function", - "name": "foo", + "lineNumber": 15, + "name": "_", + "title": "param", }, ], - "properties": Array [], - "returns": Array [ + "path": Array [ Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "numberone", - }, - ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, + "kind": "function", + "name": "data", + "scope": "static", }, ], + "properties": Array [], + "returns": Array [], + "scope": "static", "sees": Array [], "tags": Array [ Object { - "description": "numberone", + "description": null, "lineNumber": 2, - "title": "returns", - "type": Object { - "name": "Number", - "type": "NameExpression", - }, - }, - Object { - "caption": "demonstrates how to run foo", - "description": "foo(1);", - "lineNumber": 3, - "title": "example", + "name": null, + "title": "function", }, ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs example-caption.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs factory.input.js markdown 1`] = ` +" + +### Table of Contents -exports[`outputs example-caption.input.js markdown AST 1`] = ` +* [area][1] +* [area][2] +* [data][3] + * [Parameters][4] + +## area + +an area chart generator + +Returns **[area][1]** chart + +## area + +## data + +Sets the chart data. + +### Parameters + +* \`_\` + +[1]: #area + +[2]: #area-1 + +[3]: #data + +[4]: #parameters +" +`; + +exports[`outputs factory.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -16487,7 +14538,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "foo", + "value": "area", }, ], "depth": 2, @@ -16496,198 +14547,144 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "This function returns the number one.", + "value": "an area chart generator", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Examples", + "value": "Returns ", }, - ], - "depth": 3, - "type": "heading", - }, - Object { - "children": Array [ Object { "children": Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "demonstrates how to run foo", + "value": "area", }, ], - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "identifier": "1", + "referenceType": "full", + "type": "linkReference", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "chart", }, - }, - "type": "root", + ], + "type": "paragraph", }, ], "type": "paragraph", }, Object { - "lang": "javascript", - "type": "code", - "value": "foo(1);", + "children": Array [ + Object { + "type": "text", + "value": "area", + }, + ], + "depth": 2, + "type": "heading", }, Object { "children": Array [ Object { "type": "text", - "value": "Returns ", + "value": "data", }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Number", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", + "type": "text", + "value": "Sets the chart data.", }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ Object { "type": "text", - "value": " ", + "value": "Parameters", }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, + "children": Array [ + Object { + "type": "inlineCode", + "value": "_", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + Object { + "type": "text", + "value": " ", }, - }, - "type": "text", - "value": "numberone", + Object { + "type": "text", + "value": " ", + }, + ], + "type": "paragraph", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "type": "listItem", }, ], - "type": "paragraph", + "ordered": false, + "spread": false, + "type": "list", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", + "url": "#area", }, ], "type": "root", } `; -exports[`outputs external.input.js JSON 1`] = ` +exports[`outputs flow-exported-opaque-type.input.js JSON 1`] = ` Array [ Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 1, - "line": 10, + "column": 48, + "index": 95, + "line": 4, }, "start": Object { "column": 0, - "line": 8, + "index": 47, + "line": 4, }, }, }, @@ -16696,98 +14693,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "I am in ", - }, - Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - }, - "type": "inlineCode", - "value": "external.input.js", - }, - Object { - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - }, "type": "text", - "value": ".", + "value": "MyOpaqueType Description Here", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], - "kind": "function", + "implements": Array [], "loc": Object { "end": Object { - "column": 3, - "line": 7, + "column": 36, + "index": 46, + "line": 3, }, "start": Object { "column": 0, - "line": 5, + "index": 10, + "line": 3, }, }, "members": Object { @@ -16797,13 +14724,12 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "foo", - "namespace": "foo", + "name": "MyOpaqueType", + "namespace": "MyOpaqueType", "params": Array [], "path": Array [ Object { - "kind": "function", - "name": "foo", + "name": "MyOpaqueType", }, ], "properties": Array [], @@ -16812,13 +14738,27 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs external.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs flow-exported-opaque-type.input.js markdown 1`] = ` +" -exports[`outputs external.input.js markdown AST 1`] = ` +### Table of Contents + +* [MyOpaqueType][1] + +## MyOpaqueType + +MyOpaqueType Description Here + +[1]: #myopaquetype +" +`; + +exports[`outputs flow-exported-opaque-type.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -16829,7 +14769,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "foo", + "value": "MyOpaqueType", }, ], "depth": 2, @@ -16838,70 +14778,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "I am in ", - }, - Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - }, - "type": "inlineCode", - "value": "external.input.js", - }, - Object { - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - }, "type": "text", - "value": ".", + "value": "MyOpaqueType Description Here", }, ], - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -16909,19 +14789,21 @@ Object { } `; -exports[`outputs factory.input.js JSON 1`] = ` +exports[`outputs flow-optional-chaining.input.js JSON 1`] = ` Array [ Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 2, - "line": 18, + "column": 74, + "index": 95, + "line": 4, }, "start": Object { "column": 0, - "line": 5, + "index": 21, + "line": 4, }, }, }, @@ -16930,185 +14812,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "an area chart generator", + "value": "foo", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], - "kind": "function", - "loc": Object { - "end": Object { - "column": 3, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], - "static": Array [], - }, - "name": "area", - "namespace": "area", - "params": Array [], - "path": Array [ - Object { - "kind": "function", - "name": "area", - }, - ], - "properties": Array [], - "returns": Array [ - Object { - "description": Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "chart", - }, - ], - "position": Object { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "title": "returns", - "type": Object { - "name": "area", - "type": "NameExpression", - }, - }, - ], - "sees": Array [], - "tags": Array [ - Object { - "description": "chart", - "lineNumber": 2, - "title": "returns", - "type": Object { - "name": "area", - "type": "NameExpression", - }, - }, - ], - "throws": Array [], - "todos": Array [], - }, - Object { - "augments": Array [], - "context": Object { - "loc": Object { - "end": Object { - "column": 37, - "line": 9, - }, - "start": Object { - "column": 2, - "line": 9, - }, - }, - }, - "description": "", - "errors": Array [], - "examples": Array [], - "kind": "class", + "implements": Array [], + "kind": "constant", "loc": Object { "end": Object { - "column": 5, - "line": 8, + "column": 10, + "index": 20, + "line": 3, }, - "start": Object { - "column": 2, - "line": 6, + "start": Object { + "column": 0, + "index": 10, + "line": 3, }, }, "members": Object { @@ -17118,41 +14844,64 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "area", - "namespace": "area", + "name": "foo", + "namespace": "foo", "params": Array [], "path": Array [ Object { - "kind": "class", - "name": "area", + "kind": "constant", + "name": "foo", }, ], "properties": Array [], "returns": Array [], "sees": Array [], - "tags": Array [ - Object { - "description": null, - "lineNumber": 1, - "name": "area", - "title": "class", - "type": null, - }, - ], + "tags": Array [], "throws": Array [], "todos": Array [], + "type": Object { + "fields": Array [ + Object { + "key": "prop1", + "type": "FieldType", + "value": Object { + "expression": Object { + "fields": Array [ + Object { + "key": "prop2", + "type": "FieldType", + "value": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "OptionalType", + }, + }, + ], + "type": "RecordType", + }, + "type": "OptionalType", + }, + }, + ], + "type": "RecordType", + }, + "yields": Array [], }, Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 30, - "line": 15, + "column": 32, + "index": 141, + "line": 6, }, "start": Object { - "column": 2, - "line": 15, + "column": 0, + "index": 109, + "line": 6, }, }, }, @@ -17161,72 +14910,31 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Sets the chart data.", + "value": "value", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, - "errors": Array [ - Object { - "commentLineNumber": 0, - "message": "@memberof reference to chart not found", - }, - ], + "errors": Array [], "examples": Array [], - "kind": "function", + "implements": Array [], + "kind": "constant", "loc": Object { "end": Object { - "column": 5, - "line": 14, + "column": 12, + "index": 108, + "line": 5, }, "start": Object { - "column": 2, - "line": 11, + "column": 0, + "index": 96, + "line": 5, }, }, - "memberof": "chart", "members": Object { "events": Array [], "global": Array [], @@ -17234,43 +14942,53 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "data", - "namespace": ".data", - "params": Array [ - Object { - "lineNumber": 15, - "name": "_", - "title": "param", - }, - ], + "name": "value", + "namespace": "value", + "params": Array [], "path": Array [ Object { - "kind": "function", - "name": "data", - "scope": "static", + "kind": "constant", + "name": "value", }, ], "properties": Array [], "returns": Array [], - "scope": "static", "sees": Array [], - "tags": Array [ - Object { - "description": null, - "lineNumber": 2, - "name": null, - "title": "function", - }, - ], + "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs factory.input.js markdown 1`] = `"[object Object],[object Object],[object Object]"`; +exports[`outputs flow-optional-chaining.input.js markdown 1`] = ` +" -exports[`outputs factory.input.js markdown AST 1`] = ` +### Table of Contents + +* [foo][1] +* [value][2] + +## foo + +foo + +Type: {prop1: {prop2: [string][3]?}?} + +## value + +value + +[1]: #foo + +[2]: #value + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +" +`; + +exports[`outputs flow-optional-chaining.input.js markdown AST 1`] = ` Object { "children": Array [ Object { @@ -17281,7 +14999,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "area", + "value": "foo", }, ], "depth": 2, @@ -17290,219 +15008,109 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "an area chart generator", + "value": "foo", }, ], - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Returns ", + "value": "Type: ", }, Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "area", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", + "type": "text", + "value": "{", }, Object { "type": "text", - "value": " ", + "value": "prop1: ", + }, + Object { + "type": "text", + "value": "{", + }, + Object { + "type": "text", + "value": "prop2: ", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "chart", + "value": "string", }, ], - "position": Position { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "identifier": "1", + "referenceType": "full", + "type": "linkReference", }, - ], - "type": "paragraph", - }, - Object { - "children": Array [ Object { "type": "text", - "value": "area", + "value": "?", }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ Object { "type": "text", - "value": "data", + "value": "}", }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ Object { - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "Sets the chart data.", - }, - ], - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "value": "?", }, - }, - "type": "paragraph", - }, - Object { - "children": Array [ Object { "type": "text", - "value": "Parameters", + "value": "}", }, ], - "depth": 3, - "type": "heading", + "type": "paragraph", }, Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "_", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", - }, - ], - "type": "listItem", + "children": Array [ + Object { + "type": "text", + "value": "value", }, ], - "ordered": false, - "type": "list", + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "value", + }, + ], + "type": "paragraph", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", - "url": "#area", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, ], "type": "root", } `; -exports[`outputs flow-optional-chaining.input.js JSON 1`] = ` +exports[`outputs flow-unnamed-params.input.js JSON 1`] = ` Array [ Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { - "column": 32, - "line": 6, + "column": 19, + "index": 38, + "line": 4, }, "start": Object { "column": 0, - "line": 6, + "index": 19, + "line": 4, }, }, }, @@ -17511,64 +15119,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "value", + "value": "x", }, ], - "position": Object { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], - "kind": "constant", + "implements": Array [], "loc": Object { "end": Object { - "column": 12, - "line": 5, + "column": 8, + "index": 18, + "line": 3, }, "start": Object { "column": 0, - "line": 5, + "index": 10, + "line": 3, }, }, "members": Object { @@ -17578,13 +15150,12 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "value", - "namespace": "value", + "name": "x", + "namespace": "x", "params": Array [], "path": Array [ Object { - "kind": "constant", - "name": "value", + "name": "x", }, ], "properties": Array [], @@ -17593,81 +15164,37 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], - }, -] -`; - -exports[`outputs flow-optional-chaining.input.js markdown 1`] = `"[object Object]"`; - -exports[`outputs flow-optional-chaining.input.js markdown AST 1`] = ` -Object { - "children": Array [ - Object { - "type": "html", - "value": "", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "value", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ + "type": Object { + "params": Array [ Object { - "position": Position { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + "expression": Object { + "name": "T", + "type": "NameExpression", }, - "type": "text", - "value": "value", + "name": "", + "type": "ParameterType", }, ], - "position": Position { - "end": Object { - "column": 6, - "line": 1, - "offset": 5, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + "result": Object { + "name": "string", + "type": "NameExpression", }, - "type": "paragraph", + "type": "FunctionType", }, - ], - "type": "root", -} -`; - -exports[`outputs flow-unnamed-params.input.js JSON 1`] = ` -Array [ + "yields": Array [], + }, Object { "augments": Array [], "context": Object { "loc": Object { "end": Object { "column": 25, + "index": 75, "line": 7, }, "start": Object { "column": 0, + "index": 50, "line": 7, }, }, @@ -17677,62 +15204,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "x2", }, ], - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 9, + "index": 49, "line": 6, }, "start": Object { "column": 0, + "index": 40, "line": 6, }, }, @@ -17774,6 +15266,7 @@ Array [ }, "type": "FunctionType", }, + "yields": Array [], }, Object { "augments": Array [], @@ -17781,10 +15274,12 @@ Array [ "loc": Object { "end": Object { "column": 39, + "index": 125, "line": 10, }, "start": Object { "column": 0, + "index": 86, "line": 10, }, }, @@ -17794,63 +15289,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 2, - "line": 1, - "offset": 1, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "T", }, ], - "position": Object { - "end": Object { - "column": 2, - "line": 1, - "offset": 1, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 2, - "line": 1, - "offset": 1, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 8, + "index": 85, "line": 9, }, "start": Object { "column": 0, + "index": 77, "line": 9, }, }, @@ -17911,6 +15371,7 @@ Array [ }, "type": "FunctionType", }, + "yields": Array [], }, Object { "augments": Array [], @@ -17918,11 +15379,118 @@ Array [ "loc": Object { "end": Object { "column": 43, + "index": 180, + "line": 13, + }, + "start": Object { + "column": 0, + "index": 137, "line": 13, }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "T2", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "typedef", + "loc": Object { + "end": Object { + "column": 9, + "index": 136, + "line": 12, + }, + "start": Object { + "column": 0, + "index": 127, + "line": 12, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "T2", + "namespace": "T2", + "params": Array [], + "path": Array [ + Object { + "kind": "typedef", + "name": "T2", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "type": Object { + "params": Array [ + Object { + "expression": Object { + "applications": Array [ + Object { + "name": "string", + "type": "NameExpression", + }, + ], + "expression": Object { + "name": "Array", + "type": "NameExpression", + }, + "type": "TypeApplication", + }, + "name": "a", + "type": "ParameterType", + }, + ], + "result": Object { + "fields": Array [ + Object { + "key": "num", + "type": "FieldType", + "value": Object { + "name": "number", + "type": "NameExpression", + }, + }, + ], + "type": "RecordType", + }, + "type": "FunctionType", + }, + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 42, + "index": 234, + "line": 16, + }, "start": Object { "column": 0, - "line": 13, + "index": 192, + "line": 16, }, }, }, @@ -17931,64 +15499,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "T2", + "value": "T3", }, ], - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 9, - "line": 12, + "index": 191, + "line": 15, }, "start": Object { "column": 0, - "line": 12, + "index": 182, + "line": 15, }, }, "members": Object { @@ -17998,13 +15531,13 @@ Array [ "instance": Array [], "static": Array [], }, - "name": "T2", - "namespace": "T2", + "name": "T3", + "namespace": "T3", "params": Array [], "path": Array [ Object { "kind": "typedef", - "name": "T2", + "name": "T3", }, ], "properties": Array [], @@ -18017,17 +15550,8 @@ Array [ "params": Array [ Object { "expression": Object { - "applications": Array [ - Object { - "name": "string", - "type": "NameExpression", - }, - ], - "expression": Object { - "name": "Array", - "type": "NameExpression", - }, - "type": "TypeApplication", + "name": "string", + "type": "NameExpression", }, "name": "a", "type": "ParameterType", @@ -18048,11 +15572,69 @@ Array [ }, "type": "FunctionType", }, + "yields": Array [], }, ] `; -exports[`outputs flow-unnamed-params.input.js markdown 1`] = `"[object Object],[object Object],[object Object]"`; +exports[`outputs flow-unnamed-params.input.js markdown 1`] = ` +" + +### Table of Contents + +* [x][1] +* [x2][2] +* [T][3] +* [T2][4] +* [T3][5] + +## x + +x + +Type: function ([T][3]): [string][6] + +## x2 + +x2 + +Type: function (a: [T][3]): [string][6] + +## T + +T + +Type: function ([Array][7]<[string][6]>): {num: [number][8]} + +## T2 + +T2 + +Type: function (a: [Array][7]<[string][6]>): {num: [number][8]} + +## T3 + +T3 + +Type: function (a: [string][6]): {num: [number][8]} + +[1]: #x + +[2]: #x2 + +[3]: #t + +[4]: #t2 + +[5]: #t3 + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array + +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs flow-unnamed-params.input.js markdown AST 1`] = ` Object { @@ -18065,7 +15647,7 @@ Object { "children": Array [ Object { "type": "text", - "value": "x2", + "value": "x", }, ], "depth": 2, @@ -18074,36 +15656,72 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, + "type": "text", + "value": "x", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Type: ", + }, + Object { + "type": "text", + "value": "function (", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "T", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": ")", + }, + Object { + "type": "text", + "value": ": ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "string", }, - }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { "type": "text", "value": "x2", }, ], - "position": Position { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "x2", }, - }, + ], "type": "paragraph", }, Object { @@ -18166,36 +15784,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 2, - "line": 1, - "offset": 1, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "T", }, ], - "position": Position { - "end": Object { - "column": 2, - "line": 1, - "offset": 1, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -18285,36 +15877,107 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, + "type": "text", + "value": "T2", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Type: ", + }, + Object { + "type": "text", + "value": "function (", + }, + Object { + "type": "text", + "value": "a: ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Array", }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + ], + "identifier": "3", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": "<", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "string", }, - }, + ], + "identifier": "2", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": ">", + }, + Object { + "type": "text", + "value": ")", + }, + Object { + "type": "text", + "value": ": ", + }, + Object { + "type": "text", + "value": "{", + }, + Object { + "type": "text", + "value": "num: ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "number", + }, + ], + "identifier": "4", + "referenceType": "full", + "type": "linkReference", + }, + Object { + "type": "text", + "value": "}", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "T3", + }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ + Object { "type": "text", - "value": "T2", + "value": "T3", }, ], - "position": Position { - "end": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -18331,21 +15994,6 @@ Object { "type": "text", "value": "a: ", }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Array", - }, - ], - "identifier": "3", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": "<", - }, Object { "children": Array [ Object { @@ -18357,10 +16005,6 @@ Object { "referenceType": "full", "type": "linkReference", }, - Object { - "type": "text", - "value": ">", - }, Object { "type": "text", "value": ")", @@ -18397,25 +16041,25 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "#t", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", }, Object { "identifier": "4", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -18424,6 +16068,27 @@ Object { } `; +exports[`outputs import.meta.input.js JSON 1`] = `Array []`; + +exports[`outputs import.meta.input.js markdown 1`] = ` +" + +### Table of Contents +" +`; + +exports[`outputs import.meta.input.js markdown AST 1`] = ` +Object { + "children": Array [ + Object { + "type": "html", + "value": "", + }, + ], + "type": "root", +} +`; + exports[`outputs infer-private.input.js JSON 1`] = ` Array [ Object { @@ -18432,10 +16097,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 178, "line": 14, }, "start": Object { "column": 0, + "index": 101, "line": 9, }, }, @@ -18445,63 +16112,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "C description", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 20, + "index": 100, "line": 8, }, "start": Object { "column": 0, + "index": 80, "line": 8, }, }, @@ -18516,10 +16148,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 142, "line": 11, }, "start": Object { "column": 2, + "index": 136, "line": 11, }, }, @@ -18529,63 +16163,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "m description", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 22, + "index": 133, "line": 10, }, "start": Object { "column": 2, + "index": 113, "line": 10, }, }, @@ -18618,6 +16217,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -18637,11 +16237,32 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs infer-private.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs infer-private.input.js markdown 1`] = ` +" + +### Table of Contents + +* [C][1] + * [m][2] + +## C + +C description + +### m + +m description + +[1]: #c + +[2]: #m +" +`; exports[`outputs infer-private.input.js markdown AST 1`] = ` Object { @@ -18663,36 +16284,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "C description", }, ], - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -18708,36 +16303,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "m description", }, ], - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -18758,10 +16327,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 112, "line": 6, }, "start": Object { "column": 0, + "index": 52, "line": 4, }, }, @@ -18771,63 +16342,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "With ES6, built-in types are extensible!", }, ], - "position": Object { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 51, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -18853,6 +16389,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -18860,10 +16397,12 @@ Array [ "loc": Object { "end": Object { "column": 42, + "index": 174, "line": 9, }, "start": Object { "column": 0, + "index": 132, "line": 9, }, }, @@ -18871,14 +16410,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 17, + "index": 131, "line": 8, }, "start": Object { "column": 0, + "index": 114, "line": 8, }, }, @@ -18912,11 +16454,32 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs inheritance.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs inheritance.input.js markdown 1`] = ` +" + +### Table of Contents + +* [SpecialArray][1] +* [Foo][2] + +## SpecialArray + +**Extends Array** + +With ES6, built-in types are extensible! + +## Foo + +[1]: #specialarray + +[2]: #foo +" +`; exports[`outputs inheritance.input.js markdown AST 1`] = ` Object { @@ -18956,36 +16519,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "With ES6, built-in types are extensible!", }, ], - "position": Position { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -19011,10 +16548,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 133, "line": 8, }, "start": Object { "column": 0, + "index": 95, "line": 6, }, }, @@ -19024,63 +16563,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Adds one to a number", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 94, "line": 5, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -19100,51 +16604,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the input", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -19170,51 +16636,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the output", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -19248,6 +16676,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -19255,10 +16684,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 540, "line": 23, }, "start": Object { "column": 0, + "index": 487, "line": 21, }, }, @@ -19268,21 +16699,6 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 1, - "line": 2, - "offset": 60, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one. Internally, this uses ", @@ -19295,39 +16711,11 @@ Array [ }, ], "jsdoc": true, - "position": Object { - "end": Object { - "column": 15, - "line": 2, - "offset": 74, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 2, - "offset": 60, - }, - }, "title": null, "type": "link", "url": "addOne", }, Object { - "position": Object { - "end": Object { - "column": 1, - "line": 3, - "offset": 109, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 15, - "line": 2, - "offset": 74, - }, - }, "type": "text", "value": " to do the math. This demonstrates ", @@ -19340,39 +16728,11 @@ Array [ }, ], "jsdoc": true, - "position": Object { - "end": Object { - "column": 56, - "line": 3, - "offset": 164, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 109, - }, - }, "title": null, "type": "link", "url": "https://en.wikipedia.org/wiki/Addition", }, Object { - "position": Object { - "end": Object { - "column": 5, - "line": 4, - "offset": 169, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 56, - "line": 3, - "offset": 164, - }, - }, "type": "text", "value": " and ", @@ -19385,59 +16745,16 @@ and ", }, ], "jsdoc": true, - "position": Object { - "end": Object { - "column": 51, - "line": 4, - "offset": 215, - }, - "indent": Array [], - "start": Object { - "column": 5, - "line": 4, - "offset": 169, - }, - }, "title": null, "type": "link", "url": "https://en.wikipedia.org/wiki/Addition", }, ], - "position": Object { - "end": Object { - "column": 51, - "line": 4, - "offset": 215, - }, - "indent": Array [ - 1, - 1, - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 30, - "line": 6, - "offset": 246, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 6, - "offset": 217, - }, - }, "type": "text", "value": "This link refers to nothing: ", }, @@ -19449,64 +16766,29 @@ and ", }, ], "jsdoc": true, - "position": Object { - "end": Object { - "column": 45, - "line": 6, - "offset": 261, - }, - "indent": Array [], - "start": Object { - "column": 30, - "line": 6, - "offset": 246, - }, - }, "title": null, - "type": "link", - "url": "nothing", - }, - ], - "position": Object { - "end": Object { - "column": 45, - "line": 6, - "offset": 261, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 6, - "offset": 217, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 45, - "line": 6, - "offset": 261, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "type": "link", + "url": "nothing", + }, + ], + "type": "paragraph", }, - }, + ], "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 486, "line": 20, }, "start": Object { "column": 0, + "index": 135, "line": 10, }, }, @@ -19526,51 +16808,13 @@ and ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the input", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 8, @@ -19596,51 +16840,13 @@ and ", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -19674,11 +16880,61 @@ and ", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs inline-link.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs inline-link.input.js markdown 1`] = ` +" + +### Table of Contents + +* [addOne][1] + * [Parameters][2] +* [inline-link.input][3] + * [Parameters][4] + +## addOne + +Adds one to a number + +### Parameters + +* \`a\` **[number][5]** the input + +Returns **[number][5]** the output + +## inline-link.input + +This function returns the number one. Internally, this uses +[addOne][1] to do the math. This demonstrates +[Addition][6] +and [https://en.wikipedia.org/wiki/Addition][6] + +This link refers to nothing: [nothing][7] + +### Parameters + +* \`a\` **[number][5]** the input + +Returns **[number][5]** numberone + +[1]: #addone + +[2]: #parameters + +[3]: #inline-linkinput + +[4]: #parameters-1 + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[6]: https://en.wikipedia.org/wiki/Addition + +[7]: nothing +" +`; exports[`outputs inline-link.input.js markdown AST 1`] = ` Object { @@ -19700,36 +16956,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Adds one to a number", }, ], - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -19779,36 +17009,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the input", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -19819,6 +17023,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -19850,36 +17055,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the output", }, ], - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -19898,21 +17077,6 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 1, - "line": 2, - "offset": 60, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one. Internally, this uses ", @@ -19929,21 +17093,6 @@ Object { "type": "linkReference", }, Object { - "position": Position { - "end": Object { - "column": 1, - "line": 3, - "offset": 109, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 15, - "line": 2, - "offset": 74, - }, - }, "type": "text", "value": " to do the math. This demonstrates ", @@ -19960,21 +17109,6 @@ Object { "type": "linkReference", }, Object { - "position": Position { - "end": Object { - "column": 5, - "line": 4, - "offset": 169, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 56, - "line": 3, - "offset": 164, - }, - }, "type": "text", "value": " and ", @@ -19991,41 +17125,11 @@ and ", "type": "linkReference", }, ], - "position": Position { - "end": Object { - "column": 51, - "line": 4, - "offset": 215, - }, - "indent": Array [ - 1, - 1, - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 30, - "line": 6, - "offset": 246, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 6, - "offset": 217, - }, - }, "type": "text", "value": "This link refers to nothing: ", }, @@ -20041,19 +17145,6 @@ and ", "type": "linkReference", }, ], - "position": Position { - "end": Object { - "column": 45, - "line": 6, - "offset": 261, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 6, - "offset": 217, - }, - }, "type": "paragraph", }, Object { @@ -20103,36 +17194,10 @@ and ", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the input", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -20143,6 +17208,7 @@ and ", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -20174,36 +17240,10 @@ and ", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -20211,25 +17251,25 @@ and ", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": null, + "title": "", "type": "definition", "url": "#addone", }, Object { "identifier": "3", - "title": null, + "title": "", "type": "definition", "url": "https://en.wikipedia.org/wiki/Addition", }, Object { "identifier": "4", - "title": null, + "title": "", "type": "definition", "url": "nothing", }, @@ -20255,10 +17295,12 @@ Array [ "loc": Object { "end": Object { "column": 1, - "line": 7, + "index": 148, + "line": 9, }, "start": Object { "column": 0, + "index": 33, "line": 4, }, }, @@ -20268,71 +17310,199 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + "type": "text", + "value": "This is my interface.", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "interface", + "loc": Object { + "end": Object { + "column": 3, + "index": 32, + "line": 3, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [ + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 15, + "index": 105, + "line": 6, + }, + "start": Object { + "column": 2, + "index": 92, + "line": 6, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is prop 1", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "member", + "loc": Object { + "end": Object { + "column": 23, + "index": 89, + "line": 5, + }, + "start": Object { + "column": 2, + "index": 68, + "line": 5, + }, + }, + "memberof": "Foo", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "prop1", + "namespace": "Foo#prop1", + "params": Array [], + "path": Array [ + Object { + "kind": "interface", + "name": "Foo", + }, + Object { + "kind": "member", + "name": "prop1", + "scope": "instance", + }, + ], + "properties": Array [], + "returns": Array [], + "scope": "instance", + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "type": Object { + "name": "number", + "type": "NameExpression", + }, + "yields": Array [], + }, + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 15, + "index": 146, + "line": 8, + }, + "start": Object { + "column": 2, + "index": 133, + "line": 8, }, - "type": "text", - "value": "This is my interface.", }, - ], - "position": Object { + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is prop 2", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "member", + "loc": Object { "end": Object { - "column": 22, - "line": 1, - "offset": 21, + "column": 23, + "index": 130, + "line": 7, }, - "indent": Array [], "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "column": 2, + "index": 109, + "line": 7, }, }, - "type": "paragraph", + "memberof": "Foo", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "prop2", + "namespace": "Foo#prop2", + "params": Array [], + "path": Array [ + Object { + "kind": "interface", + "name": "Foo", + }, + Object { + "kind": "member", + "name": "prop2", + "scope": "instance", + }, + ], + "properties": Array [], + "returns": Array [], + "scope": "instance", + "sees": Array [], + "tags": Array [], + "throws": Array [], + "todos": Array [], + "type": Object { + "name": "string", + "type": "NameExpression", + }, + "yields": Array [], }, ], - "position": Object { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - "errors": Array [], - "examples": Array [], - "kind": "interface", - "loc": Object { - "end": Object { - "column": 3, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "members": Object { - "events": Array [], - "global": Array [], - "inner": Array [], - "instance": Array [], "static": Array [], }, "name": "Foo", @@ -20344,36 +17514,55 @@ Array [ "name": "Foo", }, ], - "properties": Array [ - Object { - "lineNumber": 5, - "name": "prop1", - "title": "property", - "type": Object { - "name": "number", - "type": "NameExpression", - }, - }, - Object { - "lineNumber": 6, - "name": "prop2", - "title": "property", - "type": Object { - "name": "string", - "type": "NameExpression", - }, - }, - ], + "properties": Array [], "returns": Array [], "sees": Array [], "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs interface.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs interface.input.js markdown 1`] = ` +" + +### Table of Contents + +* [Foo][1] + * [prop1][2] + * [prop2][3] + +## Foo + +**Extends Bar, Baz** + +This is my interface. + +### prop1 + +This is prop 1 + +Type: [number][4] + +### prop2 + +This is prop 2 + +Type: [string][5] + +[1]: #foo + +[2]: #prop1 + +[3]: #prop2 + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +" +`; exports[`outputs interface.input.js markdown AST 1`] = ` Object { @@ -20413,43 +17602,17 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is my interface.", }, ], - "position": Position { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { "type": "text", - "value": "Properties", + "value": "prop1", }, ], "depth": 3, @@ -20457,95 +17620,81 @@ Object { }, Object { "children": Array [ + Object { + "type": "text", + "value": "This is prop 1", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Type: ", + }, Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "prop1", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "number", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", + "type": "text", + "value": "number", }, ], - "type": "listItem", + "identifier": "1", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "prop2", + }, + ], + "depth": 3, + "type": "heading", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "This is prop 2", + }, + ], + "type": "paragraph", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Type: ", }, Object { "children": Array [ Object { - "children": Array [ - Object { - "type": "inlineCode", - "value": "prop2", - }, - Object { - "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "string", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", - }, - Object { - "type": "text", - "value": " ", - }, - ], - "type": "paragraph", + "type": "text", + "value": "string", }, ], - "type": "listItem", + "identifier": "2", + "referenceType": "full", + "type": "linkReference", }, ], - "ordered": false, - "type": "list", + "type": "paragraph", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, @@ -20562,10 +17711,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 147, "line": 10, }, "start": Object { "column": 0, + "index": 113, "line": 8, }, }, @@ -20575,97 +17726,36 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "I am in ", }, Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - }, "type": "inlineCode", "value": "external.input.js", }, Object { - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - }, "type": "text", "value": ".", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 112, "line": 7, }, "start": Object { "column": 0, + "index": 73, "line": 5, }, }, @@ -20691,11 +17781,25 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs internal.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs internal.input.js markdown 1`] = ` +" + +### Table of Contents + +* [foo][1] + +## foo + +I am in \`external.input.js\`. + +[1]: #foo +" +`; exports[`outputs internal.input.js markdown AST 1`] = ` Object { @@ -20717,70 +17821,18 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "I am in ", }, Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - }, "type": "inlineCode", "value": "external.input.js", }, Object { - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - }, "type": "text", "value": ".", }, ], - "position": Position { - "end": Object { - "column": 29, - "line": 1, - "offset": 28, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -20804,10 +17856,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 541, "line": 28, }, "start": Object { "column": 0, + "index": 72, "line": 6, }, }, @@ -20817,63 +17871,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A neat layout view", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 71, "line": 5, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -20888,10 +17907,12 @@ Array [ "loc": Object { "end": Object { "column": 20, + "index": 176, "line": 10, }, "start": Object { "column": 4, + "index": 160, "line": 10, }, }, @@ -20901,62 +17922,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "My field", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 19, + "index": 155, "line": 9, }, "start": Object { "column": 4, + "index": 140, "line": 9, }, }, @@ -20988,6 +17974,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -20995,10 +17982,12 @@ Array [ "loc": Object { "end": Object { "column": 5, + "index": 360, "line": 18, }, "start": Object { "column": 4, + "index": 310, "line": 16, }, }, @@ -21008,63 +17997,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "My neat function", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 7, + "index": 305, "line": 15, }, "start": Object { "column": 4, + "index": 182, "line": 11, }, }, @@ -21085,51 +18039,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -21160,51 +18076,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word but one better", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -21239,6 +18117,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -21246,10 +18125,12 @@ Array [ "loc": Object { "end": Object { "column": 5, + "index": 534, "line": 26, }, "start": Object { "column": 4, + "index": 494, "line": 24, }, }, @@ -21259,63 +18140,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "My neat function", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 7, + "index": 489, "line": 23, }, "start": Object { "column": 4, + "index": 366, "line": 19, }, }, @@ -21336,51 +18182,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -21411,51 +18219,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word but one better", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -21490,6 +18260,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -21524,11 +18295,68 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs lends.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs lends.input.js markdown 1`] = ` +" + +### Table of Contents + +* [TheClass][1] + * [my-field][2] + * [foo][3] + * [Parameters][4] + * [bar][5] + * [Parameters][6] + +## TheClass + +**Extends Augmented** + +A neat layout view + +### my-field + +My field + +### foo + +My neat function + +#### Parameters + +* \`word\` **[string][7]** your word + +Returns **[string][7]** your word but one better + +### bar + +My neat function + +#### Parameters + +* \`word\` **[string][7]** your word + +Returns **[string][7]** your word but one better + +[1]: #theclass + +[2]: #my-field + +[3]: #foo + +[4]: #parameters + +[5]: #bar + +[6]: #parameters-1 + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +" +`; exports[`outputs lends.input.js markdown AST 1`] = ` Object { @@ -21568,36 +18396,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A neat layout view", }, ], - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -21613,36 +18415,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "My field", }, ], - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -21658,36 +18434,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "My neat function", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -21737,36 +18487,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -21777,6 +18501,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -21808,36 +18533,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word but one better", }, ], - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -21856,36 +18555,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "My neat function", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -21935,36 +18608,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -21975,6 +18622,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -22006,36 +18654,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "your word but one better", }, ], - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -22043,7 +18665,7 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, @@ -22060,10 +18682,12 @@ Array [ "loc": Object { "end": Object { "column": 16, + "index": 70, "line": 4, }, "start": Object { "column": 0, + "index": 54, "line": 4, }, }, @@ -22071,14 +18695,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 53, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -22175,6 +18802,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -22182,10 +18810,12 @@ Array [ "loc": Object { "end": Object { "column": 49, + "index": 128, "line": 7, }, "start": Object { "column": 0, + "index": 79, "line": 7, }, }, @@ -22193,14 +18823,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 6, + "index": 78, "line": 6, }, "start": Object { "column": 0, + "index": 72, "line": 6, }, }, @@ -22261,11 +18894,42 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs literal_types.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs literal_types.input.js markdown 1`] = ` +" + +### Table of Contents + +* [f][1] + * [Parameters][2] +* [g][3] + * [Parameters][4] + +## f + +### Parameters + +* \`x\` **(\`\\"a\\"\` | \`\\"b\\"\` | \`\\"\\"\` | \`0\` | \`-42\` | \`3.14\`)** + +## g + +### Parameters + +* \`x\` **(\`\\"a\\"\` | \`\\"b\\"\` | \`\\"\\"\` | \`0\` | \`-42\` | \`3.14\`)** + +[1]: #f + +[2]: #parameters + +[3]: #g + +[4]: #parameters-1 +" +`; exports[`outputs literal_types.input.js markdown AST 1`] = ` Object { @@ -22377,6 +19041,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -22482,6 +19147,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -22497,10 +19163,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 470, "line": 28, }, "start": Object { "column": 0, + "index": 86, "line": 7, }, }, @@ -22510,51 +19178,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is my class, a demo thing.", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [ @@ -22564,14 +19194,17 @@ Array [ }, ], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 85, "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -22587,10 +19220,12 @@ Array [ "loc": Object { "end": Object { "column": 3, + "index": 343, "line": 20, }, "start": Object { "column": 2, + "index": 297, "line": 18, }, }, @@ -22600,63 +19235,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get the number 42", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 7, + "index": 294, "line": 17, }, "start": Object { "column": 2, + "index": 160, "line": 12, }, }, @@ -22677,51 +19277,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "whether to get the number", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -22752,51 +19314,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "forty-two", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -22831,6 +19355,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [ @@ -22840,10 +19365,12 @@ Array [ "loc": Object { "end": Object { "column": 26, + "index": 467, "line": 27, }, "start": Object { "column": 2, + "index": 443, "line": 27, }, }, @@ -22853,63 +19380,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get undefined", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 7, + "index": 440, "line": 26, }, "start": Object { "column": 2, + "index": 347, "line": 22, }, }, @@ -22943,51 +19435,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "does not return anything.", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -23010,6 +19464,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -23041,11 +19496,56 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs memberedclass.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs memberedclass.input.js markdown 1`] = ` +" + +### Table of Contents + +* [MyClass][1] + * [getFoo][2] + * [Parameters][3] + * [getUndefined][4] + +## MyClass + +This is my class, a demo thing. + +### getFoo + +Get the number 42 + +#### Parameters + +* \`getIt\` **[boolean][5]** whether to get the number + +Returns **[number][6]** forty-two + +### getUndefined + +Get undefined + +Returns **[undefined][7]** does not return anything. + +[1]: #myclass + +[2]: #getfoo + +[3]: #parameters + +[4]: #getundefined + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined +" +`; exports[`outputs memberedclass.input.js markdown AST 1`] = ` Object { @@ -23067,36 +19567,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is my class, a demo thing.", }, ], - "position": Position { - "end": Object { - "column": 32, - "line": 1, - "offset": 31, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -23112,36 +19586,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get the number 42", }, ], - "position": Position { - "end": Object { - "column": 18, - "line": 1, - "offset": 17, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -23191,36 +19639,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "whether to get the number", }, ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -23231,6 +19653,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -23262,36 +19685,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "forty-two", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -23310,36 +19707,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get undefined", }, ], - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -23371,36 +19742,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "does not return anything.", }, ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -23408,19 +19753,19 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined", }, @@ -23437,10 +19782,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 150, "line": 9, }, "start": Object { "column": 0, + "index": 95, "line": 7, }, }, @@ -23450,97 +19797,36 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Add five to ", }, Object { - "position": Object { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - }, "type": "inlineCode", "value": "x", }, Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - }, "type": "text", "value": ".", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 94, "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -23560,51 +19846,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The number to add five to.", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -23630,51 +19878,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "x plus five.", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -23702,11 +19912,36 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs merge-infered-type.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs merge-infered-type.input.js markdown 1`] = ` +" + +### Table of Contents + +* [addFive][1] + * [Parameters][2] + +## addFive + +Add five to \`x\`. + +### Parameters + +* \`x\` **[number][3]** The number to add five to. + +Returns **[number][3]** x plus five. + +[1]: #addfive + +[2]: #parameters + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs merge-infered-type.input.js markdown AST 1`] = ` Object { @@ -23726,72 +19961,20 @@ Object { "type": "heading", }, Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, + "children": Array [ + Object { "type": "text", "value": "Add five to ", }, Object { - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - }, "type": "inlineCode", "value": "x", }, Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - }, "type": "text", "value": ".", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -23841,36 +20024,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The number to add five to.", }, ], - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -23881,6 +20038,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -23912,36 +20070,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "x plus five.", }, ], - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -23949,7 +20081,7 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -23966,11 +20098,13 @@ Array [ "loc": Object { "end": Object { "column": 2, - "line": 16, + "index": 352, + "line": 14, }, "start": Object { "column": 0, - "line": 13, + "index": 288, + "line": 11, }, }, }, @@ -23979,51 +20113,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Tom MacWright", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "description": Object { @@ -24031,64 +20127,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "license": "BSD", "loc": Object { "end": Object { "column": 3, - "line": 12, + "index": 287, + "line": 10, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -24116,51 +20177,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -24172,188 +20195,28 @@ Array [ ], "sees": Array [ Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "github", - }, - ], - "jsdoc": true, - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "title": null, - "type": "link", - "url": "http://github.com/", - }, - ], - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "TestCase", - }, - ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "root", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 2, - "line": 1, - "offset": 1, - }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "markdown link", }, - "type": "text", - "value": "markdown link", - }, - ], - "position": Object { - "end": Object { - "column": 33, - "line": 1, - "offset": 32, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + ], + "title": null, + "type": "link", + "url": "http://foo.com/", }, - "title": null, - "type": "link", - "url": "http://foo.com/", - }, - ], - "position": Object { - "end": Object { - "column": 33, - "line": 1, - "offset": 32, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + ], + "type": "paragraph", }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 33, - "line": 1, - "offset": 32, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, + ], + "type": "root", }, - "type": "root", + "title": "sees", }, ], "since": "2.0.0", @@ -24372,50 +20235,69 @@ Array [ "lineNumber": 3, "title": "description", }, - Object { - "description": "{@link http://github.com/|github}", - "lineNumber": 4, - "title": "see", - }, - Object { - "description": "TestCase", - "lineNumber": 5, - "title": "see", - }, Object { "description": "[markdown link](http://foo.com/)", - "lineNumber": 6, + "lineNumber": 4, "title": "see", }, Object { "description": "1.0.0", - "lineNumber": 7, + "lineNumber": 5, "title": "version", }, Object { "description": "2.0.0", - "lineNumber": 8, + "lineNumber": 6, "title": "since", }, Object { "description": "Tom MacWright", - "lineNumber": 9, + "lineNumber": 7, "title": "copyright", }, Object { "description": "BSD", - "lineNumber": 10, + "lineNumber": 8, "title": "license", }, ], "throws": Array [], "todos": Array [], "version": "1.0.0", + "yields": Array [], }, ] `; -exports[`outputs meta.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs meta.input.js markdown 1`] = ` +" + +### Table of Contents + +* [meta.input][1] + +## meta.input + +* **See**: [markdown link][2] + +This function returns the number one. + +Returns **[number][3]** numberone + +**Meta** + +* **version**: 1.0.0 +* **since**: 2.0.0 +* **copyright**: Tom MacWright +* **license**: BSD + +[1]: #metainput + +[2]: http://foo.com/ + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs meta.input.js markdown AST 1`] = ` Object { @@ -24440,187 +20322,58 @@ Object { "children": Array [ Object { "children": Array [ - Object { - "type": "text", - "value": "See: ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "github", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - ], - "position": Position { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", - }, - ], - "type": "strong", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "See: ", - }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", - "value": "TestCase", + "value": "See", }, ], - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "type": "strong", }, - ], - "type": "strong", - }, - ], - "type": "listItem", - }, - Object { - "children": Array [ - Object { - "children": Array [ Object { "type": "text", - "value": "See: ", + "value": ": ", }, Object { "children": Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 2, - "line": 1, - "offset": 1, + "children": Array [ + Object { + "type": "text", + "value": "markdown link", }, - }, - "type": "text", - "value": "markdown link", + ], + "identifier": "1", + "referenceType": "full", + "type": "linkReference", }, ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", + "type": "paragraph", }, ], - "position": Position { - "end": Object { - "column": 33, - "line": 1, - "offset": 32, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "type": "root", }, ], - "type": "strong", + "type": "paragraph", }, ], "type": "listItem", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -24638,7 +20391,7 @@ Object { "value": "number", }, ], - "identifier": "3", + "identifier": "2", "referenceType": "full", "type": "linkReference", }, @@ -24652,36 +20405,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -24774,51 +20501,13 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Tom MacWright", }, ], - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, ], @@ -24856,23 +20545,18 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "identifier": "1", - "title": null, - "type": "definition", - "url": "http://github.com/", - }, - Object { - "identifier": "2", - "title": null, + "title": "", "type": "definition", "url": "http://foo.com/", }, Object { - "identifier": "3", - "title": undefined, + "identifier": "2", + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -24889,10 +20573,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 289, "line": 19, }, "start": Object { "column": 0, + "index": 170, "line": 13, }, }, @@ -24902,63 +20588,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get the time", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 73, "line": 6, }, "start": Object { "column": 0, + "index": 14, "line": 3, }, }, @@ -24992,51 +20643,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the current date", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -25060,6 +20673,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -25067,10 +20681,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 289, "line": 19, }, "start": Object { "column": 0, + "index": 170, "line": 13, }, }, @@ -25080,63 +20696,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Set the time", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 169, "line": 12, }, "start": Object { "column": 0, + "index": 75, "line": 8, }, }, @@ -25156,51 +20737,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the current time", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -25226,51 +20769,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 8, - "line": 1, - "offset": 7, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "nothing", }, ], - "position": Object { - "end": Object { - "column": 8, - "line": 1, - "offset": 7, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 8, - "line": 1, - "offset": 7, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -25302,11 +20807,54 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs multisignature.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs multisignature.input.js markdown 1`] = ` +" + +### Table of Contents + +* [getTheTime][1] + * [Parameters][2] +* [getTheTime][3] + * [Parameters][4] + +## getTheTime + +Get the time + +### Parameters + +* \`time\` + +Returns **[Date][5]** the current date + +## getTheTime + +Set the time + +### Parameters + +* \`time\` **[Date][5]** the current time + +Returns **[undefined][6]** nothing + +[1]: #getthetime + +[2]: #parameters + +[3]: #getthetime-1 + +[4]: #parameters-1 + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined +" +`; exports[`outputs multisignature.input.js markdown AST 1`] = ` Object { @@ -25328,36 +20876,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Get the time", }, ], - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -25396,6 +20918,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -25427,36 +20950,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the current date", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -25475,36 +20972,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Set the time", }, ], - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -25554,36 +21025,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the current time", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -25594,6 +21039,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -25625,36 +21071,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 8, - "line": 1, - "offset": 7, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "nothing", }, ], - "position": Position { - "end": Object { - "column": 8, - "line": 1, - "offset": 7, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -25662,13 +21082,13 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined", }, @@ -25685,10 +21105,12 @@ Array [ "loc": Object { "end": Object { "column": 3, + "index": 585, "line": 13, }, "start": Object { "column": 0, + "index": 479, "line": 10, }, }, @@ -25698,63 +21120,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 73, - "line": 1, - "offset": 72, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Attempt to establish a cookie-based session in exchange for credentials.", }, ], - "position": Object { - "end": Object { - "column": 73, - "line": 1, - "offset": 72, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 73, - "line": 1, - "offset": 72, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 478, "line": 9, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -25778,119 +21165,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Login username. Also accepted as ", }, Object { - "position": Object { - "end": Object { - "column": 44, - "line": 1, - "offset": 43, - }, - "indent": Array [], - "start": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - }, "type": "inlineCode", "value": "username", }, Object { - "position": Object { - "end": Object { - "column": 48, - "line": 1, - "offset": 47, - }, - "indent": Array [], - "start": Object { - "column": 44, - "line": 1, - "offset": 43, - }, - }, "type": "text", "value": " or ", }, Object { - "position": Object { - "end": Object { - "column": 55, - "line": 1, - "offset": 54, - }, - "indent": Array [], - "start": Object { - "column": 48, - "line": 1, - "offset": 47, - }, - }, "type": "inlineCode", "value": "email", }, Object { - "position": Object { - "end": Object { - "column": 56, - "line": 1, - "offset": 55, - }, - "indent": Array [], - "start": Object { - "column": 55, - "line": 1, - "offset": 54, - }, - }, "type": "text", "value": ".", }, ], - "position": Object { - "end": Object { - "column": 56, - "line": 1, - "offset": 55, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 56, - "line": 1, - "offset": 55, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -25907,51 +21204,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Login password", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -25975,85 +21234,21 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Gets passed ", }, Object { - "position": Object { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "indent": Array [], - "start": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - }, "type": "inlineCode", "value": "(err, { success:Boolean })", }, Object { - "position": Object { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - }, "type": "text", "value": ".", }, ], - "position": Object { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 6, @@ -26082,51 +21277,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 58, - "line": 1, - "offset": 57, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "promise, to be resolved on success or rejected on failure", }, ], - "position": Object { - "end": Object { - "column": 58, - "line": 1, - "offset": 57, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 58, - "line": 1, - "offset": 57, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -26205,11 +21362,46 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs nearby_params.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs nearby_params.input.js markdown 1`] = ` +" + +### Table of Contents + +* [sessions.create][1] + * [Parameters][2] + +## sessions.create + +Attempt to establish a cookie-based session in exchange for credentials. + +### Parameters + +* \`credentials\` **[object][3]** + + * \`credentials.name\` **[string][4]** Login username. Also accepted as \`username\` or \`email\`. + * \`credentials.password\` **[string][4]** Login password +* \`callback\` **[function][5]?** Gets passed \`(err, { success:Boolean })\`. + +Returns **[Promise][6]** promise, to be resolved on success or rejected on failure + +[1]: #sessionscreate + +[2]: #parameters + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise +" +`; exports[`outputs nearby_params.input.js markdown AST 1`] = ` Object { @@ -26231,36 +21423,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 73, - "line": 1, - "offset": 72, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Attempt to establish a cookie-based session in exchange for credentials.", }, ], - "position": Position { - "end": Object { - "column": 73, - "line": 1, - "offset": 72, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -26347,104 +21513,26 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Login username. Also accepted as ", }, Object { - "position": Position { - "end": Object { - "column": 44, - "line": 1, - "offset": 43, - }, - "indent": Array [], - "start": Object { - "column": 34, - "line": 1, - "offset": 33, - }, - }, "type": "inlineCode", "value": "username", }, Object { - "position": Position { - "end": Object { - "column": 48, - "line": 1, - "offset": 47, - }, - "indent": Array [], - "start": Object { - "column": 44, - "line": 1, - "offset": 43, - }, - }, "type": "text", "value": " or ", }, Object { - "position": Position { - "end": Object { - "column": 55, - "line": 1, - "offset": 54, - }, - "indent": Array [], - "start": Object { - "column": 48, - "line": 1, - "offset": 47, - }, - }, "type": "inlineCode", "value": "email", }, Object { - "position": Position { - "end": Object { - "column": 56, - "line": 1, - "offset": 55, - }, - "indent": Array [], - "start": Object { - "column": 55, - "line": 1, - "offset": 54, - }, - }, "type": "text", "value": ".", }, ], - "position": Position { - "end": Object { - "column": 56, - "line": 1, - "offset": 55, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -26488,36 +21576,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Login password", }, ], - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -26528,6 +21590,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -26572,169 +21635,334 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Gets passed ", }, Object { - "position": Position { - "end": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - "indent": Array [], - "start": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - }, "type": "inlineCode", "value": "(err, { success:Boolean })", }, Object { - "position": Position { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 41, - "line": 1, - "offset": 40, - }, - }, "type": "text", "value": ".", }, ], - "position": Position { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], "type": "paragraph", }, ], - "type": "listItem", + "type": "listItem", + }, + ], + "ordered": false, + "spread": false, + "type": "list", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "Returns ", + }, + Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Promise", + }, + ], + "identifier": "4", + "referenceType": "full", + "type": "linkReference", + }, + ], + "type": "strong", + }, + Object { + "type": "text", + "value": " ", + }, + Object { + "children": Array [ + Object { + "type": "text", + "value": "promise, to be resolved on success or rejected on failure", + }, + ], + "type": "paragraph", + }, + ], + "type": "paragraph", + }, + Object { + "identifier": "1", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", + }, + Object { + "identifier": "2", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", + }, + Object { + "identifier": "3", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function", + }, + Object { + "identifier": "4", + "title": "", + "type": "definition", + "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise", + }, + ], + "type": "root", +} +`; + +exports[`outputs nest_events.input.js JSON 1`] = ` +Array [ + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 6, + "index": 114, + "line": 13, + }, + "start": Object { + "column": 0, + "index": 108, + "line": 13, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Klass description", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "class", + "loc": Object { + "end": Object { + "column": 3, + "index": 48, + "line": 5, + }, + "start": Object { + "column": 0, + "index": 0, + "line": 1, + }, + }, + "members": Object { + "events": Array [ + Object { + "augments": Array [], + "context": Object { + "loc": Object { + "end": Object { + "column": 6, + "index": 114, + "line": 13, + }, + "start": Object { + "column": 0, + "index": 108, + "line": 13, + }, + }, + }, + "description": Object { + "children": Array [ + Object { + "children": Array [ + Object { + "type": "text", + "value": "Klass event", + }, + ], + "type": "paragraph", + }, + ], + "type": "root", + }, + "errors": Array [], + "examples": Array [], + "implements": Array [], + "kind": "event", + "loc": Object { + "end": Object { + "column": 3, + "index": 107, + "line": 12, + }, + "start": Object { + "column": 1, + "index": 52, + "line": 8, + }, + }, + "memberof": "Klass", + "members": Object { + "events": Array [], + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "bar", + "namespace": "Klass.event:bar", + "params": Array [], + "path": Array [ + Object { + "kind": "class", + "name": "Klass", + }, + Object { + "kind": "event", + "name": "bar", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [ + Object { + "description": "bar", + "lineNumber": 2, + "title": "event", + }, + Object { + "description": "Klass", + "lineNumber": 3, + "title": "memberof", + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], }, ], - "ordered": false, - "type": "list", + "global": Array [], + "inner": Array [], + "instance": Array [], + "static": Array [], + }, + "name": "Klass", + "namespace": "Klass", + "params": Array [], + "path": Array [ + Object { + "kind": "class", + "name": "Klass", + }, + ], + "properties": Array [], + "returns": Array [], + "sees": Array [], + "tags": Array [ + Object { + "description": null, + "lineNumber": 3, + "name": "Klass", + "title": "class", + "type": null, + }, + ], + "throws": Array [], + "todos": Array [], + "yields": Array [], + }, +] +`; + +exports[`outputs nest_events.input.js markdown 1`] = ` +" + +### Table of Contents + +* [Klass][1] + * [bar][2] + +## Klass + +Klass description + +### bar + +Klass event + +[1]: #klass + +[2]: #bar +" +`; + +exports[`outputs nest_events.input.js markdown AST 1`] = ` +Object { + "children": Array [ + Object { + "type": "html", + "value": "", }, Object { "children": Array [ Object { "type": "text", - "value": "Returns ", - }, - Object { - "children": Array [ - Object { - "children": Array [ - Object { - "type": "text", - "value": "Promise", - }, - ], - "identifier": "4", - "referenceType": "full", - "type": "linkReference", - }, - ], - "type": "strong", + "value": "Klass", }, + ], + "depth": 2, + "type": "heading", + }, + Object { + "children": Array [ Object { "type": "text", - "value": " ", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 58, - "line": 1, - "offset": 57, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "text", - "value": "promise, to be resolved on success or rejected on failure", - }, - ], - "position": Position { - "end": Object { - "column": 58, - "line": 1, - "offset": 57, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, - "type": "paragraph", + "value": "Klass description", }, ], "type": "paragraph", }, Object { - "identifier": "1", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", - }, - Object { - "identifier": "2", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", - }, - Object { - "identifier": "3", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function", + "children": Array [ + Object { + "type": "text", + "value": "bar", + }, + ], + "depth": 3, + "type": "heading", }, Object { - "identifier": "4", - "title": undefined, - "type": "definition", - "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise", + "children": Array [ + Object { + "type": "text", + "value": "Klass event", + }, + ], + "type": "paragraph", }, ], "type": "root", @@ -26749,10 +21977,12 @@ Array [ "loc": Object { "end": Object { "column": 32, + "index": 314, "line": 7, }, "start": Object { "column": 0, + "index": 282, "line": 7, }, }, @@ -26760,14 +21990,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 281, "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -26787,51 +22020,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 51, - "line": 1, - "offset": 50, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The employees who are responsible for the project.", }, ], - "position": Object { - "end": Object { - "column": 51, - "line": 1, - "offset": 50, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 51, - "line": 1, - "offset": 50, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 1, @@ -26843,51 +22038,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The name of an employee.", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -26904,51 +22061,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The employee's department.", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -26982,51 +22101,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The employee's type.", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -27104,6 +22185,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -27111,10 +22193,12 @@ Array [ "loc": Object { "end": Object { "column": 32, + "index": 314, "line": 7, }, "start": Object { "column": 0, + "index": 282, "line": 7, }, }, @@ -27122,13 +22206,16 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 3, + "index": 654, "line": 19, }, "start": Object { "column": 0, + "index": 316, "line": 9, }, }, @@ -27148,51 +22235,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "some options", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -27204,51 +22253,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "how much", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -27272,51 +22283,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "something else", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -27340,51 +22313,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the current time", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -27432,51 +22367,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "foo something else", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -27576,11 +22473,70 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs nest_params.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs nest_params.input.js markdown 1`] = ` +" + +### Table of Contents + +* [foo][1] + * [Parameters][2] +* [foo][3] + * [Parameters][4] + * [Properties][5] + +## foo + +### Parameters + +* \`employees\` **[Array][6]<[Object][7]>** The employees who are responsible for the project. + + * \`employees[].name\` **[string][8]** The name of an employee. + * \`employees[].department\` **[string][8]** The employee's department. +* \`type\` **[string][8]** The employee's type. (optional, default \`minion\`) + +## foo + +### Parameters + +* \`options\` **[Object][7]** some options + + * \`options.much\` **[number][9]** how much +* \`bar\` **[number][9]** something else + +### Properties + +* \`theTime\` **[Object][7]** the current time + + * \`theTime.hours\` **[number][9]** + * \`theTime.minutes\` **[number][9]** + * \`theTime.seconds\` **[number][9]** + +Returns **[Object][7]** foo something else + +[1]: #foo + +[2]: #parameters + +[3]: #foo-1 + +[4]: #parameters-1 + +[5]: #properties + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object + +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs nest_params.input.js markdown AST 1`] = ` Object { @@ -27665,36 +22621,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 51, - "line": 1, - "offset": 50, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The employees who are responsible for the project.", }, - ], - "position": Position { - "end": Object { - "column": 51, - "line": 1, - "offset": 50, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, + ], "type": "paragraph", }, ], @@ -27737,36 +22667,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The name of an employee.", }, ], - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -27810,36 +22714,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The employee's department.", }, ], - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -27850,6 +22728,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -27890,36 +22769,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The employee's type.", }, ], - "position": Position { - "end": Object { - "column": 21, - "line": 1, - "offset": 20, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -27947,6 +22800,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -28006,36 +22860,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "some options", }, ], - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -28078,36 +22906,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "how much", }, ], - "position": Position { - "end": Object { - "column": 9, - "line": 1, - "offset": 8, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -28118,6 +22920,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -28158,36 +22961,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "something else", }, ], - "position": Position { - "end": Object { - "column": 15, - "line": 1, - "offset": 14, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -28198,6 +22975,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -28247,36 +23025,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the current time", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -28400,6 +23152,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -28407,6 +23160,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -28438,36 +23192,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "foo something else", }, ], - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -28475,25 +23203,25 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, Object { "identifier": "4", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -28510,10 +23238,12 @@ Array [ "loc": Object { "end": Object { "column": 0, + "index": 185, "line": 7, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -28523,51 +23253,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A function.", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [ @@ -28576,13 +23268,16 @@ Array [ }, ], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 3, + "index": 184, "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -28601,59 +23296,15 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 34, - "line": 3, - "offset": 132, - }, - "indent": Array [ - 1, - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The input to the function. I should be able to continue the description on a new line, and have it still work in the markdown table.", }, ], - "position": Object { - "end": Object { - "column": 34, - "line": 3, - "offset": 132, - }, - "indent": Array [ - 1, - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 34, - "line": 3, - "offset": 132, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -28685,11 +23336,36 @@ still work in the markdown table.", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs newline-in-description.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs newline-in-description.input.js markdown 1`] = ` +" + +### Table of Contents + +* [][1] + * [Parameters][2] + +## + +A function. + +### Parameters + +* \`a\` **[Number][3]** The input to the function. + I should be able to continue the description on a new line, and have it + still work in the markdown table. + +[1]: # + +[2]: #parameters + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs newline-in-description.input.js markdown AST 1`] = ` Object { @@ -28711,36 +23387,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A function.", }, ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -28790,44 +23440,12 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 34, - "line": 3, - "offset": 132, - }, - "indent": Array [ - 1, - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The input to the function. I should be able to continue the description on a new line, and have it still work in the markdown table.", }, ], - "position": Position { - "end": Object { - "column": 34, - "line": 3, - "offset": 132, - }, - "indent": Array [ - 1, - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -28838,11 +23456,12 @@ still work in the markdown table.", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -28859,10 +23478,12 @@ Array [ "loc": Object { "end": Object { "column": 0, + "index": 47, "line": 5, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -28872,51 +23493,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Set the time", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [ @@ -28925,13 +23508,16 @@ Array [ }, ], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 3, + "index": 46, "line": 4, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -28972,11 +23558,34 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs no-name.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs no-name.input.js markdown 1`] = ` +" + +### Table of Contents + +* [][1] + * [Parameters][2] + +## + +Set the time + +### Parameters + +* \`bar\` **[number][3]** + +[1]: # + +[2]: #parameters + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs no-name.input.js markdown AST 1`] = ` Object { @@ -28998,36 +23607,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Set the time", }, ], - "position": Position { - "end": Object { - "column": 13, - "line": 1, - "offset": 12, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -29082,11 +23665,12 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -29103,10 +23687,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 55, "line": 5, }, "start": Object { "column": 0, + "index": 7, "line": 2, }, }, @@ -29114,14 +23700,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 6, + "index": 6, "line": 1, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -29169,107 +23758,52 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], - "type": Object { - "fields": Array [ - Object { - "key": "opt", - "type": "FieldType", - "value": Object { - "expression": Object { - "name": "number", - "type": "NameExpression", - }, - "type": "OptionalType", - }, - }, - Object { - "key": "req", - "type": "FieldType", - "value": Object { - "name": "string", - "type": "NameExpression", - }, - }, - ], - "type": "RecordType", - }, + "yields": Array [], }, ] `; -exports[`outputs optional-record-field-type.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs optional-record-field-type.input.js markdown 1`] = ` +" + +### Table of Contents + +* [Record][1] + * [Properties][2] + +## Record + +### Properties + +* \`opt\` **[number][3]?** +* \`req\` **[string][4]** + +[1]: #record + +[2]: #properties + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +" +`; exports[`outputs optional-record-field-type.input.js markdown AST 1`] = ` -Object { - "children": Array [ - Object { - "type": "html", - "value": "", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Record", - }, - ], - "depth": 2, - "type": "heading", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "Type: ", - }, - Object { - "type": "text", - "value": "{", - }, - Object { - "type": "text", - "value": "opt: ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "number", - }, - ], - "identifier": "1", - "referenceType": "full", - "type": "linkReference", - }, - Object { - "type": "text", - "value": "?", - }, - Object { - "type": "text", - "value": ", ", - }, - Object { - "type": "text", - "value": "req: ", - }, - Object { - "children": Array [ - Object { - "type": "text", - "value": "string", - }, - ], - "identifier": "2", - "referenceType": "full", - "type": "linkReference", - }, +Object { + "children": Array [ + Object { + "type": "html", + "value": "", + }, + Object { + "children": Array [ Object { "type": "text", - "value": "}", + "value": "Record", }, ], - "type": "paragraph", + "depth": 2, + "type": "heading", }, Object { "children": Array [ @@ -29365,17 +23899,18 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, @@ -29392,10 +23927,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 161, "line": 7, }, "start": Object { "column": 0, + "index": 87, "line": 5, }, }, @@ -29405,63 +23942,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 86, "line": 4, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -29486,51 +23988,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the second param", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -29596,6 +24060,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -29603,10 +24068,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 372, "line": 16, }, "start": Object { "column": 0, + "index": 301, "line": 14, }, }, @@ -29616,63 +24083,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method has partially inferred params", }, ], - "position": Object { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 300, "line": 13, }, "start": Object { "column": 0, + "index": 163, "line": 9, }, }, @@ -29696,51 +24128,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "number of kinds of fish", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -29797,6 +24191,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -29804,10 +24199,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 517, "line": 24, }, "start": Object { "column": 0, + "index": 474, "line": 22, }, }, @@ -29817,63 +24214,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 68, - "line": 1, - "offset": 67, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method has a type in the description and a default in the code", }, ], - "position": Object { - "end": Object { - "column": 68, - "line": 1, - "offset": 67, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 68, - "line": 1, - "offset": 67, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 473, "line": 21, }, "start": Object { "column": 0, + "index": 374, "line": 18, }, }, @@ -29921,6 +24283,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -29928,10 +24291,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 653, "line": 35, }, "start": Object { "column": 0, + "index": 558, "line": 29, }, }, @@ -29941,63 +24306,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is foo's documentation", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 557, "line": 28, }, "start": Object { "column": 0, + "index": 519, "line": 26, }, }, @@ -30012,10 +24342,12 @@ Array [ "loc": Object { "end": Object { "column": 14, + "index": 651, "line": 34, }, "start": Object { "column": 2, + "index": 639, "line": 34, }, }, @@ -30025,63 +24357,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The method", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 5, + "index": 636, "line": 33, }, "start": Object { "column": 2, + "index": 572, "line": 30, }, }, @@ -30102,51 +24399,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Param to method", }, ], - "position": Object { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -30187,6 +24446,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -30206,6 +24466,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -30213,10 +24474,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 822, "line": 47, }, "start": Object { "column": 0, + "index": 685, "line": 40, }, }, @@ -30226,62 +24489,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Traditional object", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 3, + "index": 684, "line": 39, }, "start": Object { "column": 0, + "index": 655, "line": 37, }, }, @@ -30297,10 +24525,12 @@ Array [ "loc": Object { "end": Object { "column": 3, + "index": 819, "line": 46, }, "start": Object { "column": 2, + "index": 769, "line": 44, }, }, @@ -30310,63 +24540,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method should acquire the param x", }, ], - "position": Object { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 5, + "index": 766, "line": 43, }, "start": Object { "column": 2, + "index": 713, "line": 41, }, }, @@ -30404,6 +24599,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], }, @@ -30421,6 +24617,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -30428,10 +24625,12 @@ Array [ "loc": Object { "end": Object { "column": 22, + "index": 1216, "line": 61, }, "start": Object { "column": 0, + "index": 1194, "line": 61, }, }, @@ -30441,86 +24640,22 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Represents an IPv6 address", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 47, - "line": 3, - "offset": 74, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 28, - }, - }, "type": "text", "value": "This tests our support of optional parameters", }, ], - "position": Object { - "end": Object { - "column": 47, - "line": 3, - "offset": 74, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 28, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 47, - "line": 3, - "offset": 74, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], @@ -30529,14 +24664,17 @@ Array [ "description": "var address = new Address6('2001::/32');", }, ], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 1193, "line": 60, }, "start": Object { "column": 0, + "index": 824, "line": 49, }, }, @@ -30556,51 +24694,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "An IPv6 address string", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -30618,51 +24718,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "How many octets to parse", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 6, @@ -30679,51 +24741,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A third argument", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 7, @@ -30745,51 +24769,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "to properly be parsed", }, ], - "position": Object { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 8, @@ -30878,6 +24864,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -30885,10 +24872,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 1833, "line": 77, }, "start": Object { "column": 0, + "index": 1772, "line": 75, }, }, @@ -30898,98 +24887,37 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 62, - "line": 1, - "offset": 61, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Create a GeoJSON data source instance given an options object", }, ], - "position": Object { - "end": Object { - "column": 62, - "line": 1, - "offset": 61, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 44, - "line": 3, - "offset": 106, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 63, - }, - }, - "type": "text", - "value": "This tests our support of nested parameters", - }, - ], - "position": Object { - "end": Object { - "column": 44, - "line": 3, - "offset": 106, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 63, - }, - }, - "type": "paragraph", - }, - ], - "position": Object { - "end": Object { - "column": 44, - "line": 3, - "offset": 106, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, + "type": "text", + "value": "This tests our support of nested parameters", + }, + ], + "type": "paragraph", }, - }, + ], "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 1771, "line": 74, }, "start": Object { "column": 0, + "index": 1218, "line": 63, }, }, @@ -31009,51 +24937,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "optional options", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -31065,56 +24955,14 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 57, - "line": 2, - "offset": 92, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A GeoJSON data object or URL to it. The latter is preferable in case of large GeoJSON files.", }, ], - "position": Object { - "end": Object { - "column": 57, - "line": 2, - "offset": 92, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 57, - "line": 2, - "offset": 92, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 6, @@ -31141,51 +24989,13 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 36, - "line": 1, - "offset": 35, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Maximum zoom to preserve detail at.", }, ], - "position": Object { - "end": Object { - "column": 36, - "line": 1, - "offset": 35, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 36, - "line": 1, - "offset": 35, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 8, @@ -31202,51 +25012,13 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Tile buffer on each side.", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 9, @@ -31266,51 +25038,13 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Simplification tolerance (higher means simpler).", }, ], - "position": Object { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 10, @@ -31428,6 +25162,7 @@ The latter is preferable in case of large GeoJSON files.", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -31435,10 +25170,12 @@ The latter is preferable in case of large GeoJSON files.", "loc": Object { "end": Object { "column": 37, + "index": 2052, "line": 87, }, "start": Object { "column": 0, + "index": 2015, "line": 87, }, }, @@ -31448,68 +25185,29 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 26, - "line": 2, - "offset": 100, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support for parameters with explicit types but with default values specified in code.", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 2, - "offset": 100, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 26, - "line": 2, - "offset": 100, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "constant", "loc": Object { "end": Object { "column": 3, + "index": 2014, "line": 86, }, "start": Object { "column": 0, + "index": 1835, "line": 79, }, }, @@ -31530,51 +25228,13 @@ values specified in code.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "an argument", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -31600,51 +25260,13 @@ values specified in code.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "some", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -31678,6 +25300,7 @@ values specified in code.", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -31685,10 +25308,12 @@ values specified in code.", "loc": Object { "end": Object { "column": 1, + "index": 2283, "line": 97, }, "start": Object { "column": 0, + "index": 2240, "line": 95, }, }, @@ -31698,68 +25323,29 @@ values specified in code.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 57, - "line": 2, - "offset": 125, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support of JSDoc param tags without type information, or any type information we could infer from annotations.", }, ], - "position": Object { - "end": Object { - "column": 57, - "line": 2, - "offset": 125, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 57, - "line": 2, - "offset": 125, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 2239, "line": 94, }, "start": Object { "column": 0, + "index": 2054, "line": 89, }, }, @@ -31779,51 +25365,13 @@ or any type information we could infer from annotations.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "An IPv6 address string", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -31851,6 +25399,7 @@ or any type information we could infer from annotations.", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -31858,10 +25407,12 @@ or any type information we could infer from annotations.", "loc": Object { "end": Object { "column": 1, + "index": 2629, "line": 111, }, "start": Object { "column": 0, + "index": 2570, "line": 109, }, }, @@ -31871,68 +25422,29 @@ or any type information we could infer from annotations.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 35, - "line": 2, - "offset": 85, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support for iterator rest inside an iterator destructure (RestElement)", }, ], - "position": Object { - "end": Object { - "column": 35, - "line": 2, - "offset": 85, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 35, - "line": 2, - "offset": 85, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 2569, "line": 108, }, "start": Object { "column": 0, + "index": 2285, "line": 99, }, }, @@ -31956,51 +25468,13 @@ iterator destructure (RestElement)", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "head of iterator", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -32017,51 +25491,13 @@ iterator destructure (RestElement)", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "body of iterator", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 6, @@ -32097,51 +25533,13 @@ iterator destructure (RestElement)", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "rotated such that the last element was the first", }, ], - "position": Object { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -32216,11 +25614,222 @@ iterator destructure (RestElement)", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs params.input.js markdown 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"`; +exports[`outputs params.input.js markdown 1`] = ` +" + +### Table of Contents + +* [addThem][1] + * [Parameters][2] +* [fishesAndFoxes][3] + * [Parameters][4] +* [withDefault][5] + * [Parameters][6] +* [Foo][7] + * [method][8] + * [Parameters][9] +* [TraditionalObject][10] + * [traditionalMethod][11] + * [Parameters][12] +* [Address6][13] + * [Parameters][14] + * [Examples][15] +* [GeoJSONSource][16] + * [Parameters][17] +* [myfunc][18] + * [Parameters][19] +* [foo][20] + * [Parameters][21] +* [rotate][22] + * [Parameters][23] + +## addThem + +This function returns the number one. + +### Parameters + +* \`a\` +* \`b\` **[number][24]** the second param +* \`c\` +* \`$3\` **[Object][25]** + + * \`$3.d\` + * \`$3.e\` + * \`$3.f\` + +## fishesAndFoxes + +This method has partially inferred params + +### Parameters + +* \`options\` **[Object][25]** + + * \`options.fishes\` **[String][26]** number of kinds of fish + * \`options.foxes\` + +## withDefault + +This method has a type in the description and a default in the code + +### Parameters + +* \`x\` **[number][24]** (optional, default \`2\`) + +## Foo + +This is foo's documentation + +### method + +The method + +#### Parameters + +* \`x\` **[number][24]** Param to method + +## TraditionalObject + +Traditional object + +### traditionalMethod + +This method should acquire the param x + +#### Parameters + +* \`x\` + +## Address6 + +Represents an IPv6 address + +This tests our support of optional parameters + +### Parameters + +* \`address\` **[string][26]** An IPv6 address string +* \`groups\` **[number][24]** How many octets to parse (optional, default \`8\`) +* \`third\` **[number][24]?** A third argument +* \`foo\` **[Array][27]** to properly be parsed (optional, default \`[1]\`) + +### Examples + +\`\`\`javascript +var address = new Address6('2001::/32'); +\`\`\` + +## GeoJSONSource + +Create a GeoJSON data source instance given an options object + +This tests our support of nested parameters + +### Parameters + +* \`options\` **[Object][25]?** optional options + + * \`options.data\` **([Object][25] | [string][26])** A GeoJSON data object or URL to it. + The latter is preferable in case of large GeoJSON files. + * \`options.maxzoom\` **[number][24]** Maximum zoom to preserve detail at. (optional, default \`14\`) + * \`options.buffer\` **[number][24]?** Tile buffer on each side. + * \`options.tolerance\` **[number][24]?** Simplification tolerance (higher means simpler). + +## myfunc + +This tests our support for parameters with explicit types but with default +values specified in code. + +### Parameters + +* \`x\` **[number][24]** an argument (optional, default \`123\`) + +Returns **[number][24]** some + +## foo + +This tests our support of JSDoc param tags without type information, +or any type information we could infer from annotations. + +### Parameters + +* \`address\` An IPv6 address string + +## rotate + +This tests our support for iterator rest inside an +iterator destructure (RestElement) + +### Parameters + +* \`input\` **[Array][27]** + + * \`input.0\` **any** head of iterator + * \`input.xs\` **...any** body of iterator + +Returns **[Array][27]\\\\** rotated such that the last element was the first + +[1]: #addthem + +[2]: #parameters + +[3]: #fishesandfoxes + +[4]: #parameters-1 + +[5]: #withdefault + +[6]: #parameters-2 + +[7]: #foo + +[8]: #method + +[9]: #parameters-3 + +[10]: #traditionalobject + +[11]: #traditionalmethod + +[12]: #parameters-4 + +[13]: #address6 + +[14]: #parameters-5 + +[15]: #examples + +[16]: #geojsonsource + +[17]: #parameters-6 + +[18]: #myfunc + +[19]: #parameters-7 + +[20]: #foo-1 + +[21]: #parameters-8 + +[22]: #rotate + +[23]: #parameters-9 + +[24]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[25]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object + +[26]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String + +[27]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array +" +`; exports[`outputs params.input.js markdown AST 1`] = ` Object { @@ -32242,36 +25851,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -32343,36 +25926,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the second param", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -32508,6 +26065,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -32515,6 +26073,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -32530,36 +26089,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method has partially inferred params", }, ], - "position": Position { - "end": Object { - "column": 42, - "line": 1, - "offset": 41, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -32646,36 +26179,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "number of kinds of fish", }, ], - "position": Position { - "end": Object { - "column": 24, - "line": 1, - "offset": 23, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -32708,6 +26215,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -32715,6 +26223,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -32730,36 +26239,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 68, - "line": 1, - "offset": 67, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method has a type in the description and a default in the code", }, ], - "position": Position { - "end": Object { - "column": 68, - "line": 1, - "offset": 67, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -32831,6 +26314,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -32846,36 +26330,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This is foo's documentation", }, ], - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -32891,36 +26349,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The method", }, ], - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -32970,36 +26402,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Param to method", }, ], - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -33010,6 +26416,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -33025,36 +26432,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Traditional object", }, ], - "position": Position { - "end": Object { - "column": 19, - "line": 1, - "offset": 18, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -33070,36 +26451,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This method should acquire the param x", }, ], - "position": Position { - "end": Object { - "column": 39, - "line": 1, - "offset": 38, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -33138,6 +26493,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -33153,71 +26509,19 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Represents an IPv6 address", }, ], - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 47, - "line": 3, - "offset": 74, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 28, - }, - }, "type": "text", "value": "This tests our support of optional parameters", }, ], - "position": Position { - "end": Object { - "column": 47, - "line": 3, - "offset": 74, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 28, - }, - }, "type": "paragraph", }, Object { @@ -33267,36 +26571,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "An IPv6 address string", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -33340,36 +26618,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "How many octets to parse", }, ], - "position": Position { - "end": Object { - "column": 25, - "line": 1, - "offset": 24, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -33434,36 +26686,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A third argument", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -33507,36 +26733,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "to properly be parsed", }, ], - "position": Position { - "end": Object { - "column": 22, - "line": 1, - "offset": 21, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -33564,6 +26764,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -33594,71 +26795,19 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 62, - "line": 1, - "offset": 61, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Create a GeoJSON data source instance given an options object", }, ], - "position": Position { - "end": Object { - "column": 62, - "line": 1, - "offset": 61, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 44, - "line": 3, - "offset": 106, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 63, - }, - }, "type": "text", "value": "This tests our support of nested parameters", }, ], - "position": Position { - "end": Object { - "column": 44, - "line": 3, - "offset": 106, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 3, - "offset": 63, - }, - }, "type": "paragraph", }, Object { @@ -33712,36 +26861,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "optional options", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -33807,41 +26930,11 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 57, - "line": 2, - "offset": 92, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "A GeoJSON data object or URL to it. The latter is preferable in case of large GeoJSON files.", }, ], - "position": Position { - "end": Object { - "column": 57, - "line": 2, - "offset": 92, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -33885,36 +26978,10 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 36, - "line": 1, - "offset": 35, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Maximum zoom to preserve detail at.", }, ], - "position": Position { - "end": Object { - "column": 36, - "line": 1, - "offset": 35, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -33979,36 +27046,10 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Tile buffer on each side.", }, ], - "position": Position { - "end": Object { - "column": 26, - "line": 1, - "offset": 25, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34056,36 +27097,10 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Simplification tolerance (higher means simpler).", }, ], - "position": Position { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34096,6 +27111,7 @@ The latter is preferable in case of large GeoJSON files.", }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -34103,6 +27119,7 @@ The latter is preferable in case of large GeoJSON files.", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -34118,41 +27135,11 @@ The latter is preferable in case of large GeoJSON files.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 26, - "line": 2, - "offset": 100, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support for parameters with explicit types but with default values specified in code.", }, - ], - "position": Position { - "end": Object { - "column": 26, - "line": 2, - "offset": 100, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, + ], "type": "paragraph", }, Object { @@ -34202,36 +27189,10 @@ values specified in code.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "an argument", }, ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -34259,6 +27220,7 @@ values specified in code.", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -34290,36 +27252,10 @@ values specified in code.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "some", }, ], - "position": Position { - "end": Object { - "column": 5, - "line": 1, - "offset": 4, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34338,41 +27274,11 @@ values specified in code.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 57, - "line": 2, - "offset": 125, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support of JSDoc param tags without type information, or any type information we could infer from annotations.", }, ], - "position": Position { - "end": Object { - "column": 57, - "line": 2, - "offset": 125, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -34406,36 +27312,10 @@ or any type information we could infer from annotations.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "An IPv6 address string", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34446,6 +27326,7 @@ or any type information we could infer from annotations.", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -34461,41 +27342,11 @@ or any type information we could infer from annotations.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 35, - "line": 2, - "offset": 85, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This tests our support for iterator rest inside an iterator destructure (RestElement)", }, ], - "position": Position { - "end": Object { - "column": 35, - "line": 2, - "offset": 85, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -34575,36 +27426,10 @@ iterator destructure (RestElement)", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "head of iterator", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34645,36 +27470,10 @@ iterator destructure (RestElement)", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "body of iterator", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34685,6 +27484,7 @@ iterator destructure (RestElement)", }, ], "ordered": false, + "spread": false, "type": "list", }, ], @@ -34692,6 +27492,7 @@ iterator destructure (RestElement)", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -34735,36 +27536,10 @@ iterator destructure (RestElement)", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "rotated such that the last element was the first", }, ], - "position": Position { - "end": Object { - "column": 49, - "line": 1, - "offset": 48, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34772,25 +27547,25 @@ iterator destructure (RestElement)", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, Object { "identifier": "4", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", }, @@ -34807,10 +27582,12 @@ Array [ "loc": Object { "end": Object { "column": 20, + "index": 38, "line": 4, }, "start": Object { "column": 0, + "index": 18, "line": 4, }, }, @@ -34820,63 +27597,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "apples", }, ], - "position": Object { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 17, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -34902,11 +27644,25 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs react-jsx.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs react-jsx.input.js markdown 1`] = ` +" + +### Table of Contents + +* [apples][1] + +## apples + +apples + +[1]: #apples +" +`; exports[`outputs react-jsx.input.js markdown AST 1`] = ` Object { @@ -34928,36 +27684,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "apples", }, ], - "position": Position { - "end": Object { - "column": 7, - "line": 1, - "offset": 6, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -34967,7 +27697,12 @@ Object { exports[`outputs require-json.input.js JSON 1`] = `Array []`; -exports[`outputs require-json.input.js markdown 1`] = `""`; +exports[`outputs require-json.input.js markdown 1`] = ` +" + +### Table of Contents +" +`; exports[`outputs require-json.input.js markdown AST 1`] = ` Object { @@ -34983,7 +27718,12 @@ Object { exports[`outputs require-json-no-extension.input.js JSON 1`] = `Array []`; -exports[`outputs require-json-no-extension.input.js markdown 1`] = `""`; +exports[`outputs require-json-no-extension.input.js markdown 1`] = ` +" + +### Table of Contents +" +`; exports[`outputs require-json-no-extension.input.js markdown AST 1`] = ` Object { @@ -35005,10 +27745,12 @@ Array [ "loc": Object { "end": Object { "column": 19, + "index": 53, "line": 4, }, "start": Object { "column": 0, + "index": 34, "line": 4, }, }, @@ -35018,63 +27760,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function is first", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 33, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -35100,6 +27807,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -35107,10 +27815,12 @@ Array [ "loc": Object { "end": Object { "column": 16, + "index": 194, "line": 12, }, "start": Object { "column": 2, + "index": 180, "line": 12, }, }, @@ -35120,63 +27830,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 65, - "line": 1, - "offset": 64, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "forgot a memberof here... sure hope that doesn't crash anything!", }, ], - "position": Object { - "end": Object { - "column": 65, - "line": 1, - "offset": 64, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 65, - "line": 1, - "offset": 64, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 5, + "index": 177, "line": 11, }, "start": Object { "column": 2, + "index": 79, "line": 8, }, }, @@ -35209,6 +27884,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -35216,10 +27892,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 333, "line": 19, }, "start": Object { "column": 0, + "index": 62, "line": 7, }, }, @@ -35227,14 +27905,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 6, + "index": 61, "line": 6, }, "start": Object { "column": 0, + "index": 55, "line": 6, }, }, @@ -35249,10 +27930,12 @@ Array [ "loc": Object { "end": Object { "column": 13, + "index": 331, "line": 18, }, "start": Object { "column": 2, + "index": 320, "line": 18, }, }, @@ -35262,68 +27945,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 29, - "line": 2, - "offset": 99, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "shares a name with a top level item referenced in the TOC... sure hope that doesn't crash anything!", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 2, - "offset": 99, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 29, - "line": 2, - "offset": 99, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 5, + "index": 317, "line": 17, }, "start": Object { "column": 2, + "index": 198, "line": 14, }, }, @@ -35356,6 +28000,7 @@ that doesn't crash anything!", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -35375,6 +28020,7 @@ that doesn't crash anything!", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -35382,10 +28028,12 @@ that doesn't crash anything!", "loc": Object { "end": Object { "column": 20, + "index": 394, "line": 24, }, "start": Object { "column": 0, + "index": 374, "line": 24, }, }, @@ -35395,63 +28043,28 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This class has some members", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 373, "line": 23, }, "start": Object { "column": 0, + "index": 335, "line": 21, }, }, @@ -35466,10 +28079,12 @@ that doesn't crash anything!", "loc": Object { "end": Object { "column": 41, + "index": 460, "line": 29, }, "start": Object { "column": 0, + "index": 419, "line": 29, }, }, @@ -35479,63 +28094,28 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "second::foo", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 418, "line": 28, }, "start": Object { "column": 0, + "index": 396, "line": 26, }, }, @@ -35574,6 +28154,7 @@ that doesn't crash anything!", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -35581,10 +28162,12 @@ that doesn't crash anything!", "loc": Object { "end": Object { "column": 48, + "index": 533, "line": 34, }, "start": Object { "column": 0, + "index": 485, "line": 34, }, }, @@ -35594,63 +28177,28 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "second::bar", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 484, "line": 33, }, "start": Object { "column": 0, + "index": 462, "line": 31, }, }, @@ -35694,6 +28242,7 @@ that doesn't crash anything!", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -35713,6 +28262,7 @@ that doesn't crash anything!", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -35720,10 +28270,12 @@ that doesn't crash anything!", "loc": Object { "end": Object { "column": 19, + "index": 588, "line": 39, }, "start": Object { "column": 0, + "index": 569, "line": 39, }, }, @@ -35733,63 +28285,28 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function is third", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 568, "line": 38, }, "start": Object { "column": 0, + "index": 535, "line": 36, }, }, @@ -35815,11 +28332,88 @@ that doesn't crash anything!", "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs sections.input.js markdown 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object]"`; +exports[`outputs sections.input.js markdown 1`] = ` +" + +### Table of Contents + +* [first][1] +* [first][2] +* [AClass][3] + * [second][4] +* [second][5] + * [foo][6] + * [Parameters][7] + * [bar][8] + * [Parameters][9] +* [third][10] + +## first + +This function is first + +## first + +forgot a memberof here... sure hope that doesn't crash anything! + +## AClass + +### second + +shares a name with a top level item referenced in the TOC... sure hope +that doesn't crash anything! + +## second + +This class has some members + +### foo + +second::foo + +#### Parameters + +* \`pork\` + +### bar + +second::bar + +#### Parameters + +* \`beans\` +* \`rice\` + +## third + +This function is third + +[1]: #first + +[2]: #first-1 + +[3]: #aclass + +[4]: #second + +[5]: #second-1 + +[6]: #foo + +[7]: #parameters + +[8]: #bar + +[9]: #parameters-1 + +[10]: #third +" +`; exports[`outputs sections.input.js markdown AST 1`] = ` Object { @@ -35841,36 +28435,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function is first", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -35886,36 +28454,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 65, - "line": 1, - "offset": 64, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "forgot a memberof here... sure hope that doesn't crash anything!", }, ], - "position": Position { - "end": Object { - "column": 65, - "line": 1, - "offset": 64, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -35941,41 +28483,11 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 29, - "line": 2, - "offset": 99, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "shares a name with a top level item referenced in the TOC... sure hope that doesn't crash anything!", }, ], - "position": Position { - "end": Object { - "column": 29, - "line": 2, - "offset": 99, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -35991,36 +28503,10 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This class has some members", }, ], - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -36036,36 +28522,10 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "second::foo", }, ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -36104,6 +28564,7 @@ that doesn't crash anything!", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -36119,36 +28580,10 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "second::bar", }, ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -36209,6 +28644,7 @@ that doesn't crash anything!", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -36224,36 +28660,10 @@ that doesn't crash anything!", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function is third", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -36269,10 +28679,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 144, "line": 8, }, "start": Object { "column": 0, + "index": 80, "line": 5, }, }, @@ -36282,63 +28694,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 79, "line": 4, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -36366,51 +28743,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -36434,11 +28773,29 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs simple.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs simple.input.js markdown 1`] = ` +" + +### Table of Contents + +* [simple.input][1] + +## simple.input + +This function returns the number one. + +Returns **[number][2]** numberone + +[1]: #simpleinput + +[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs simple.input.js markdown AST 1`] = ` Object { @@ -36460,36 +28817,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -36521,36 +28852,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -36558,7 +28863,7 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -36575,10 +28880,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 238, "line": 10, }, "start": Object { "column": 0, + "index": 180, "line": 8, }, }, @@ -36588,68 +28895,29 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 8, - "line": 2, - "offset": 81, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This takes a number and a callback and calls the callback with the number plus 3.", }, ], - "position": Object { - "end": Object { - "column": 8, - "line": 2, - "offset": 81, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 8, - "line": 2, - "offset": 81, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 179, "line": 7, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -36669,51 +28937,13 @@ plus 3.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The number.", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -36730,51 +28960,13 @@ plus 3.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The callback.", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -36819,6 +29011,7 @@ plus 3.", ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -36826,10 +29019,12 @@ plus 3.", "loc": Object { "end": Object { "column": 1, + "index": 238, "line": 10, }, "start": Object { "column": 0, + "index": 180, "line": 8, }, }, @@ -36839,63 +29034,28 @@ plus 3.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This callback takes an error and a number.", }, ], - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "typedef", "loc": Object { "end": Object { "column": 3, + "index": 395, "line": 18, }, "start": Object { "column": 0, + "index": 240, "line": 12, }, }, @@ -36915,51 +29075,13 @@ plus 3.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The error.", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 4, @@ -36980,51 +29102,13 @@ plus 3.", Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The number.", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 5, @@ -37082,11 +29166,57 @@ plus 3.", "name": "Function", "type": "NameExpression", }, + "yields": Array [], }, ] `; -exports[`outputs simple-callback.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs simple-callback.input.js markdown 1`] = ` +" + +### Table of Contents + +* [takesSimpleCallback][1] + * [Parameters][2] +* [simpleCallback][3] + * [Parameters][4] + +## takesSimpleCallback + +This takes a number and a callback and calls the callback with the number +plus 3. + +### Parameters + +* \`n\` **[Number][5]** The number. +* \`cb\` **[simpleCallback][3]** The callback. + +## simpleCallback + +This callback takes an error and a number. + +Type: [Function][6] + +### Parameters + +* \`err\` **[Error][7]?** The error. +* \`n\` **[Number][5]** The number. + +[1]: #takessimplecallback + +[2]: #parameters + +[3]: #simplecallback + +[4]: #parameters-1 + +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function + +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error +" +`; exports[`outputs simple-callback.input.js markdown AST 1`] = ` Object { @@ -37108,41 +29238,11 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 8, - "line": 2, - "offset": 81, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This takes a number and a callback and calls the callback with the number plus 3.", }, ], - "position": Position { - "end": Object { - "column": 8, - "line": 2, - "offset": 81, - }, - "indent": Array [ - 1, - ], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -37192,36 +29292,10 @@ plus 3.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The number.", }, ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -37265,36 +29339,10 @@ plus 3.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The callback.", }, ], - "position": Position { - "end": Object { - "column": 14, - "line": 1, - "offset": 13, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -37305,6 +29353,7 @@ plus 3.", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -37320,36 +29369,10 @@ plus 3.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This callback takes an error and a number.", }, ], - "position": Position { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -37423,36 +29446,10 @@ plus 3.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The error.", }, ], - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -37496,36 +29493,10 @@ plus 3.", Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The number.", }, ], - "position": Position { - "end": Object { - "column": 12, - "line": 1, - "offset": 11, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -37536,29 +29507,30 @@ plus 3.", }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "#simplecallback", }, Object { "identifier": "3", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function", }, Object { "identifier": "4", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error", }, @@ -37575,10 +29547,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 165, "line": 10, }, "start": Object { "column": 0, + "index": 101, "line": 7, }, }, @@ -37588,63 +29562,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 100, "line": 6, }, "start": Object { "column": 0, + "index": 21, "line": 3, }, }, @@ -37672,51 +29611,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -37740,11 +29641,29 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs simple-hashbang.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs simple-hashbang.input.js markdown 1`] = ` +" + +### Table of Contents + +* [simple-hashbang.input][1] + +## simple-hashbang.input + +This function returns the number one. + +Returns **[Number][2]** numberone + +[1]: #simple-hashbanginput + +[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs simple-hashbang.input.js markdown AST 1`] = ` Object { @@ -37766,36 +29685,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number one.", }, ], - "position": Position { - "end": Object { - "column": 38, - "line": 1, - "offset": 37, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -37827,36 +29720,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numberone", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -37864,7 +29731,7 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -37875,7 +29742,12 @@ Object { exports[`outputs simple-private.input.js JSON 1`] = `Array []`; -exports[`outputs simple-private.input.js markdown 1`] = `""`; +exports[`outputs simple-private.input.js markdown 1`] = ` +" + +### Table of Contents +" +`; exports[`outputs simple-private.input.js markdown AST 1`] = ` Object { @@ -37891,7 +29763,12 @@ Object { exports[`outputs simple-singlestar.input.js JSON 1`] = `Array []`; -exports[`outputs simple-singlestar.input.js markdown 1`] = `""`; +exports[`outputs simple-singlestar.input.js markdown 1`] = ` +" + +### Table of Contents +" +`; exports[`outputs simple-singlestar.input.js markdown AST 1`] = ` Object { @@ -37907,7 +29784,12 @@ Object { exports[`outputs simple-triplestar.input.js JSON 1`] = `Array []`; -exports[`outputs simple-triplestar.input.js markdown 1`] = `""`; +exports[`outputs simple-triplestar.input.js markdown 1`] = ` +" + +### Table of Contents +" +`; exports[`outputs simple-triplestar.input.js markdown AST 1`] = ` Object { @@ -37929,10 +29811,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 245, "line": 13, }, "start": Object { "column": 0, + "index": 180, "line": 10, }, }, @@ -37942,51 +29826,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "This function returns the number plus two.", }, ], - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], @@ -37996,14 +29842,17 @@ Array [ // result is 6", }, ], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 3, + "index": 179, "line": 9, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -38023,51 +29872,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the number", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -38093,51 +29904,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numbertwo", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "title": "returns", @@ -38177,11 +29950,46 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs simple-two.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs simple-two.input.js markdown 1`] = ` +" + +### Table of Contents + +* [returnTwo][1] + * [Parameters][2] + * [Examples][3] + +## returnTwo + +This function returns the number plus two. + +### Parameters + +* \`a\` **[Number][4]** the number + +### Examples + +\`\`\`javascript +var result = returnTwo(4); +// result is 6 +\`\`\` + +Returns **[Number][4]** numbertwo + +[1]: #returntwo + +[2]: #parameters + +[3]: #examples + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +" +`; exports[`outputs simple-two.input.js markdown AST 1`] = ` Object { @@ -38199,40 +30007,14 @@ Object { ], "depth": 2, "type": "heading", - }, - Object { - "children": Array [ - Object { - "position": Position { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, + }, + Object { + "children": Array [ + Object { "type": "text", "value": "This function returns the number plus two.", }, ], - "position": Position { - "end": Object { - "column": 43, - "line": 1, - "offset": 42, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -38282,36 +30064,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "the number", }, ], - "position": Position { - "end": Object { - "column": 11, - "line": 1, - "offset": 10, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -38322,6 +30078,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -38369,36 +30126,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "numbertwo", }, ], - "position": Position { - "end": Object { - "column": 10, - "line": 1, - "offset": 9, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -38406,7 +30137,7 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, @@ -38423,10 +30154,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 176, "line": 19, }, "start": Object { "column": 0, + "index": 93, "line": 10, }, }, @@ -38434,14 +30167,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 6, + "index": 92, "line": 9, }, "start": Object { "column": 0, + "index": 86, "line": 9, }, }, @@ -38456,10 +30192,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 174, "line": 18, }, "start": Object { "column": 2, + "index": 168, "line": 18, }, }, @@ -38467,14 +30205,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 165, "line": 17, }, "start": Object { "column": 2, + "index": 159, "line": 17, }, }, @@ -38507,6 +30248,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38514,10 +30256,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 156, "line": 16, }, "start": Object { "column": 2, + "index": 150, "line": 16, }, }, @@ -38525,14 +30269,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 147, "line": 15, }, "start": Object { "column": 2, + "index": 141, "line": 15, }, }, @@ -38565,6 +30312,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38572,10 +30320,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 138, "line": 14, }, "start": Object { "column": 2, + "index": 132, "line": 14, }, }, @@ -38583,14 +30333,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 129, "line": 13, }, "start": Object { "column": 2, + "index": 123, "line": 13, }, }, @@ -38623,6 +30376,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38630,10 +30384,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 120, "line": 12, }, "start": Object { "column": 2, + "index": 114, "line": 12, }, }, @@ -38641,14 +30397,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 111, "line": 11, }, "start": Object { "column": 2, + "index": 105, "line": 11, }, }, @@ -38681,6 +30440,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -38700,6 +30460,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38707,10 +30468,12 @@ Array [ "loc": Object { "end": Object { "column": 1, + "index": 268, "line": 31, }, "start": Object { "column": 0, + "index": 185, "line": 22, }, }, @@ -38718,14 +30481,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 6, + "index": 184, "line": 21, }, "start": Object { "column": 0, + "index": 178, "line": 21, }, }, @@ -38740,10 +30506,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 266, "line": 30, }, "start": Object { "column": 2, + "index": 260, "line": 30, }, }, @@ -38751,14 +30519,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 257, "line": 29, }, "start": Object { "column": 2, + "index": 251, "line": 29, }, }, @@ -38791,6 +30562,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38798,10 +30570,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 248, "line": 28, }, "start": Object { "column": 2, + "index": 242, "line": 28, }, }, @@ -38809,14 +30583,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 239, "line": 27, }, "start": Object { "column": 2, + "index": 233, "line": 27, }, }, @@ -38849,6 +30626,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38856,10 +30634,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 230, "line": 26, }, "start": Object { "column": 2, + "index": 224, "line": 26, }, }, @@ -38867,14 +30647,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 221, "line": 25, }, "start": Object { "column": 2, + "index": 215, "line": 25, }, }, @@ -38907,6 +30690,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38914,10 +30698,12 @@ Array [ "loc": Object { "end": Object { "column": 8, + "index": 212, "line": 24, }, "start": Object { "column": 2, + "index": 206, "line": 24, }, }, @@ -38925,14 +30711,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 8, + "index": 203, "line": 23, }, "start": Object { "column": 2, + "index": 197, "line": 23, }, }, @@ -38965,6 +30754,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -38984,6 +30774,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -38991,10 +30782,12 @@ Array [ "loc": Object { "end": Object { "column": 15, + "index": 84, "line": 7, }, "start": Object { "column": 0, + "index": 69, "line": 7, }, }, @@ -39002,14 +30795,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 6, + "index": 68, "line": 6, }, "start": Object { "column": 0, + "index": 62, "line": 6, }, }, @@ -39035,6 +30831,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -39042,10 +30839,12 @@ Array [ "loc": Object { "end": Object { "column": 15, + "index": 60, "line": 4, }, "start": Object { "column": 0, + "index": 45, "line": 4, }, }, @@ -39053,14 +30852,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 6, + "index": 44, "line": 3, }, "start": Object { "column": 0, + "index": 38, "line": 3, }, }, @@ -39086,11 +30888,78 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs sort-order-alpha.input.js markdown 1`] = `"[object Object],[object Object],[object Object],[object Object]"`; +exports[`outputs sort-order-alpha.input.js markdown 1`] = ` +" + +### Table of Contents + +* [C][1] + * [A][2] + * [a][3] + * [B][4] + * [b][5] +* [D][6] + * [A][7] + * [a][8] + * [B][9] + * [b][10] +* [a][11] +* [b][12] + +## C + +### A + +### a + +### B + +### b + +## D + +### A + +### a + +### B + +### b + +## a + +## b + +[1]: #c + +[2]: #a + +[3]: #a-1 + +[4]: #b + +[5]: #b-1 + +[6]: #d + +[7]: #a-2 + +[8]: #a-3 + +[9]: #b-2 + +[10]: #b-3 + +[11]: #a-4 + +[12]: #b-4 +" +`; exports[`outputs sort-order-alpha.input.js markdown AST 1`] = ` Object { @@ -39233,10 +31102,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 110, "line": 11, }, "start": Object { "column": 0, + "index": 36, "line": 4, }, }, @@ -39244,14 +31115,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "constant", "loc": Object { "end": Object { "column": 3, + "index": 35, "line": 3, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -39284,6 +31158,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -39291,10 +31166,12 @@ Array [ "loc": Object { "end": Object { "column": 3, + "index": 107, "line": 10, }, "start": Object { "column": 2, + "index": 86, "line": 8, }, }, @@ -39304,51 +31181,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The foo property", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [ @@ -39358,13 +31197,16 @@ Array [ }, ], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 5, + "index": 83, "line": 7, }, "start": Object { "column": 2, + "index": 52, "line": 5, }, }, @@ -39392,11 +31234,30 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs string-literal-key.input.js markdown 1`] = `"[object Object],[object Object]"`; +exports[`outputs string-literal-key.input.js markdown 1`] = ` +" + +### Table of Contents + +* [MyContainerObject][1] +* [foo][2] + +## MyContainerObject + +## foo + +The foo property + +[1]: #mycontainerobject + +[2]: #foo +" +`; exports[`outputs string-literal-key.input.js markdown AST 1`] = ` Object { @@ -39428,36 +31289,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The foo property", }, ], - "position": Position { - "end": Object { - "column": 17, - "line": 1, - "offset": 16, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -39473,10 +31308,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 125, "line": 7, }, "start": Object { "column": 0, + "index": 40, "line": 4, }, }, @@ -39484,14 +31321,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "module", "loc": Object { "end": Object { "column": 24, + "index": 24, "line": 1, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -39525,6 +31365,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -39532,10 +31373,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 125, "line": 7, }, "start": Object { "column": 0, + "index": 40, "line": 4, }, }, @@ -39543,14 +31386,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 13, + "index": 39, "line": 3, }, "start": Object { "column": 0, + "index": 26, "line": 3, }, }, @@ -39565,10 +31411,12 @@ Array [ "loc": Object { "end": Object { "column": 21, + "index": 122, "line": 6, }, "start": Object { "column": 2, + "index": 103, "line": 6, }, }, @@ -39578,62 +31426,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The title of the book.", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 31, + "index": 100, "line": 5, }, "start": Object { "column": 2, + "index": 71, "line": 5, }, }, @@ -39665,6 +31478,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -39697,6 +31511,7 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, Object { "augments": Array [], @@ -39704,10 +31519,12 @@ Array [ "loc": Object { "end": Object { "column": 2, + "index": 237, "line": 13, }, "start": Object { "column": 0, + "index": 141, "line": 10, }, }, @@ -39715,14 +31532,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 13, + "index": 140, "line": 9, }, "start": Object { "column": 0, + "index": 127, "line": 9, }, }, @@ -39737,10 +31557,12 @@ Array [ "loc": Object { "end": Object { "column": 21, + "index": 234, "line": 12, }, "start": Object { "column": 2, + "index": 215, "line": 12, }, }, @@ -39750,62 +31572,27 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The title of the bookshelf.", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "loc": Object { "end": Object { "column": 36, + "index": 212, "line": 11, }, "start": Object { "column": 2, + "index": 178, "line": 11, }, }, @@ -39837,6 +31624,7 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ], "static": Array [], @@ -39869,11 +31657,61 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs this-class.input.js markdown 1`] = `"[object Object],[object Object],[object Object]"`; +exports[`outputs this-class.input.js markdown 1`] = ` +" + +### Table of Contents + +* [bookshelf][1] +* [Book][2] + * [Parameters][3] + * [title][4] +* [BookShelf][5] + * [Parameters][6] + * [title][7] + +## bookshelf + +## Book + +### Parameters + +* \`title\` + +### title + +The title of the book. + +## BookShelf + +### Parameters + +* \`title\` + +### title + +The title of the bookshelf. + +[1]: #bookshelf + +[2]: #book + +[3]: #parameters + +[4]: #title + +[5]: #bookshelf-1 + +[6]: #parameters-1 + +[7]: #title-1 +" +`; exports[`outputs this-class.input.js markdown AST 1`] = ` Object { @@ -39938,6 +31776,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -39953,36 +31792,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The title of the book.", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -40031,6 +31844,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -40046,36 +31860,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "The title of the bookshelf.", }, ], - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -40091,10 +31879,12 @@ Array [ "loc": Object { "end": Object { "column": 0, + "index": 116, "line": 6, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -40104,63 +31894,28 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Represents an IPv6 address", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "class", "loc": Object { "end": Object { "column": 3, + "index": 115, "line": 5, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -40180,51 +31935,13 @@ Array [ Object { "children": Array [ Object { - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "An IPv6 address string", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 3, @@ -40284,11 +32001,36 @@ Array [ ], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs type_application.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs type_application.input.js markdown 1`] = ` +" + +### Table of Contents + +* [Address6][1] + * [Parameters][2] + +## Address6 + +Represents an IPv6 address + +### Parameters + +* \`address\` **[Array][3]<[string][4]>** An IPv6 address string + +[1]: #address6 + +[2]: #parameters + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +" +`; exports[`outputs type_application.input.js markdown AST 1`] = ` Object { @@ -40310,36 +32052,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "Represents an IPv6 address", }, ], - "position": Position { - "end": Object { - "column": 27, - "line": 1, - "offset": 26, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, Object { @@ -40408,36 +32124,10 @@ Object { Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "An IPv6 address string", }, ], - "position": Position { - "end": Object { - "column": 23, - "line": 1, - "offset": 22, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], @@ -40448,17 +32138,18 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String", }, @@ -40475,10 +32166,12 @@ Array [ "loc": Object { "end": Object { "column": 40, + "index": 47, "line": 2, }, "start": Object { "column": 0, + "index": 7, "line": 2, }, }, @@ -40486,14 +32179,17 @@ Array [ "description": "", "errors": Array [], "examples": Array [], + "implements": Array [], "kind": "function", "loc": Object { "end": Object { "column": 6, + "index": 6, "line": 1, }, "start": Object { "column": 0, + "index": 0, "line": 1, }, }, @@ -40537,11 +32233,36 @@ Array [ "tags": Array [], "throws": Array [], "todos": Array [], + "yields": Array [], }, ] `; -exports[`outputs var-function-param-return.input.js markdown 1`] = `"[object Object]"`; +exports[`outputs var-function-param-return.input.js markdown 1`] = ` +" + +### Table of Contents + +* [f][1] + * [Parameters][2] + +## f + +### Parameters + +* \`x\` **[number][3]** + +Returns **[boolean][4]** + +[1]: #f + +[2]: #parameters + +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +" +`; exports[`outputs var-function-param-return.input.js markdown AST 1`] = ` Object { @@ -40612,6 +32333,7 @@ Object { }, ], "ordered": false, + "spread": false, "type": "list", }, Object { @@ -40645,13 +32367,13 @@ Object { }, Object { "identifier": "1", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number", }, Object { "identifier": "2", - "title": undefined, + "title": "", "type": "definition", "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean", }, diff --git a/__tests__/bin-readme.js b/__tests__/bin-readme.js index 51f6441d0..b38ec05dc 100644 --- a/__tests__/bin-readme.js +++ b/__tests__/bin-readme.js @@ -1,8 +1,11 @@ -const path = require('path'); -const os = require('os'); -const exec = require('child_process').exec; -const tmp = require('tmp'); -const fs = require('fs-extra'); +import path from 'path'; +import { exec } from 'child_process'; +import tmp from 'tmp'; +import fs from 'fs-extra'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); function documentation(args, options, parseJSON) { return new Promise((resolve, reject) => { @@ -22,7 +25,7 @@ function documentation(args, options, parseJSON) { }); } -describe('readme autodetection of different filenames', function() { +describe('readme autodetection of different filenames', function () { const fixtures = path.join(__dirname, 'fixture/readme'); const sourceFile = path.join(fixtures, 'index.js'); let d; @@ -38,14 +41,14 @@ describe('readme autodetection of different filenames', function() { fs.copySync(path.join(fixtures, 'index.js'), path.join(d, 'index.js')); }); - test('updates readme.markdown', async function() { + test('updates readme.markdown', async function () { await documentation(['readme index.js -s API'], { cwd: d }); const outputPath = path.join(d, 'readme.markdown'); expect(fs.readFileSync(outputPath, 'utf-8')).toMatchSnapshot(); }); }); -describe('readme command', function() { +describe('readme command', function () { const fixtures = path.join(__dirname, 'fixture/readme'); const sourceFile = path.join(fixtures, 'index.js'); let d; @@ -63,7 +66,7 @@ describe('readme command', function() { // run tests after setting up temp dir - test('--diff-only: changes needed', async function() { + test('--diff-only: changes needed', async function () { const before = fs.readFileSync(path.join(d, 'README.md'), 'utf-8'); try { await documentation(['readme index.js --diff-only -s API'], { @@ -77,13 +80,13 @@ describe('readme command', function() { } }); - test('updates README.md', async function() { + test('updates README.md', async function () { await documentation(['readme index.js -s API'], { cwd: d }); const outputPath = path.join(d, 'README.md'); expect(fs.readFileSync(outputPath, 'utf-8')).toMatchSnapshot(); }); - test('--readme-file', async function() { + test('--readme-file', async function () { fs.copySync( path.join(fixtures, 'README.input.md'), path.join(d, 'other.md') @@ -95,7 +98,7 @@ describe('readme command', function() { expect(actual).toMatchSnapshot(); }); - test('--diff-only: changes NOT needed', function() { + test('--diff-only: changes NOT needed', function () { fs.copySync( path.join(fixtures, 'README.output.md'), path.join(d, 'uptodate.md') @@ -108,7 +111,7 @@ describe('readme command', function() { }); }); - test('-s: not found', async function() { + test('-s: not found', async function () { fs.copySync( path.join(fixtures, 'README.output.md'), path.join(d, 'uptodate.md') @@ -123,7 +126,7 @@ describe('readme command', function() { } }); - test('requires -s option', async function() { + test('requires -s option', async function () { try { await documentation(['readme index.js'], { cwd: d }); } catch (err) { @@ -134,7 +137,7 @@ describe('readme command', function() { }); const badFixturePath = path.join(__dirname, 'fixture/bad/syntax.input'); - test('errors on invalid syntax', async function() { + test('errors on invalid syntax', async function () { try { await documentation( ['readme ' + badFixturePath + ' -s API --parseExtension input'], diff --git a/__tests__/bin-watch-serve.js b/__tests__/bin-watch-serve.js deleted file mode 100644 index 538ed03e6..000000000 --- a/__tests__/bin-watch-serve.js +++ /dev/null @@ -1,161 +0,0 @@ -const path = require('path'); -const os = require('os'); -const get = require('./utils').get; -const spawn = require('child_process').spawn; -const fs = require('fs'); -const pEvent = require('p-event'); - -function documentation(args, options) { - if (!options) { - options = {}; - } - if (!options.cwd) { - options.cwd = __dirname; - } - - options.maxBuffer = 1024 * 1024; - args.unshift(path.resolve(__dirname, '..', 'bin', 'documentation.js')); - - return spawn('node', args, options); -} - -function normalize(result) { - result.forEach(function(item) { - item.context.file = '[path]'; - }); - return result; -} - -const timeout = 20000; - -test.skip('harness', function() { - const docProcess = documentation(['serve', 'fixture/simple.input.js']); - expect(docProcess).toBeTruthy(); - docProcess.kill(); -}); - -test.skip( - 'provides index.html', - function() { - const docProcess = documentation(['serve', 'fixture/simple.input.js']); - return pEvent(docProcess.stdout, 'data').then(function(data) { - const portNumber = data - .toString() - .match(/documentation.js serving on port (\d+)/); - expect(portNumber).toBeTruthy(); - return get(`http://localhost:${portNumber[1]}/`).then(function(text) { - expect(text.match(//)).toBeTruthy(); - docProcess.kill(); - }); - }); - }, - timeout -); - -test.skip( - 'accepts port argument', - function() { - const docProcess = documentation([ - 'serve', - 'fixture/simple.input.js', - '--port=4004' - ]); - return pEvent(docProcess.stdout, 'data').then(function(data) { - const portNumber = data - .toString() - .match(/documentation.js serving on port 4004/); - expect(portNumber).toBeTruthy(); - return get(`http://localhost:4004/`).then(function(text) { - expect(text.match(//)).toBeTruthy(); - docProcess.kill(); - }); - }); - }, - timeout -); - -test.skip( - '--watch', - function(done) { - const tmpFile = path.join(os.tmpdir(), '/simple.js'); - fs.writeFileSync(tmpFile, '/** a function */function apples() {}'); - const docProcess = documentation(['serve', tmpFile, '--watch']); - pEvent(docProcess.stdout, 'data').then(function(data) { - const portNumber = data - .toString() - .match(/documentation.js serving on port (\d+)/); - expect(portNumber).toBeTruthy(); - return get(`http://localhost:${portNumber[1]}/`).then(function(text) { - expect(text.match(/apples/)).toBeTruthy(); - fs.writeFileSync(tmpFile, '/** a function */function bananas() {}'); - function doGet() { - get(`http://localhost:${portNumber[1]}/`).then(function(text) { - if (text.match(/bananas/)) { - docProcess.kill(); - done(); - } else { - setTimeout(doGet, 100); - } - }); - } - doGet(); - }); - }); - }, - timeout -); - -test.skip( - '--watch', - function(done) { - const tmpDir = os.tmpdir(); - const a = path.join(tmpDir, '/simple.js'); - const b = path.join(tmpDir, '/required.js'); - fs.writeFileSync(a, 'require("./required")'); - fs.writeFileSync(b, '/** soup */function soup() {}'); - const docProcess = documentation(['serve', a, '--watch']); - docProcess.stdout.once('data', function(data) { - const portNumber = data - .toString() - .match(/documentation.js serving on port (\d+)/); - expect(portNumber).toBeTruthy(); - get(`http://localhost:${portNumber[1]}/`).then(function(text) { - expect(text.match(/soup/)).toBeTruthy(); - fs.writeFileSync(b, '/** nuts */function nuts() {}'); - function doGet() { - get(`http://localhost:${portNumber[1]}/`).then(function(text) { - if (text.match(/nuts/)) { - docProcess.kill(); - done(); - } else { - setTimeout(doGet, 100); - } - }); - } - doGet(); - }); - }); - }, - timeout -); - -test.skip( - 'error page', - function() { - const tmpDir = os.tmpdir(); - const a = path.join(tmpDir, '/simple.js'); - fs.writeFileSync(a, '**'); - const docProcess = documentation(['serve', a, '--watch']); - return pEvent(docProcess.stdout, 'data').then(function(data) { - const portNumber = data - .toString() - .match(/documentation.js serving on port (\d+)/); - expect(portNumber).toBeTruthy(); - return get(`http://localhost:${portNumber[1]}/`).then(function(text) { - expect(text.match(/Unexpected token/)).toBeTruthy(); - docProcess.kill(); - }); - }); - }, - timeout -); diff --git a/__tests__/bin.js b/__tests__/bin.js index e893c644d..088d8755e 100644 --- a/__tests__/bin.js +++ b/__tests__/bin.js @@ -1,12 +1,14 @@ /* global jasmine */ -const path = require('path'); -const os = require('os'); -const exec = require('child_process').exec; -const tmp = require('tmp'); -const fs = require('fs-extra'); +import path from 'path'; +import os from 'os'; +import { exec } from 'child_process'; +import tmp from 'tmp'; +import fs from 'fs-extra'; +import { fileURLToPath } from 'url'; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); function documentation(args, options, parseJSON) { if (!options) { @@ -21,7 +23,7 @@ function documentation(args, options, parseJSON) { args.unshift('node ' + path.join(__dirname, '..', 'bin', 'documentation.js')); return new Promise((resolve, reject) => { - exec(args.join(' '), options, function(err, stdout, stderr) { + exec(args.join(' '), options, function (err, stdout, stderr) { if (err) { err.stderr = stderr; return reject(err); @@ -40,32 +42,32 @@ function documentation(args, options, parseJSON) { } function normalize(result) { - result.forEach(function(item) { + result.forEach(function (item) { item.context.file = '[path]'; }); return result; } -test.skip('documentation binary', async function() { +test('documentation binary', async function () { const data = await documentation(['build fixture/simple.input.js'], {}); expect(data.length).toBe(1); }); -test.skip('defaults to parsing package.json main', async function() { +test.skip('defaults to parsing package.json main', async function () { const data = await documentation(['build'], { cwd: path.join(__dirname, '..') }); expect(data.length).toBeTruthy(); }); -test.skip('accepts config file', async function() { +test('accepts config file', async function () { const data = await documentation([ 'build fixture/sorting/input.js -c fixture/config.json' ]); expect(normalize(data)).toMatchSnapshot(); }); -test.skip('accepts config file - reports failures', async function() { +test('accepts config file - reports failures', async function () { try { await documentation( ['build fixture/sorting/input.js -c fixture/config-bad.yml'], @@ -77,7 +79,7 @@ test.skip('accepts config file - reports failures', async function() { } }); -test.skip('accepts config file - reports parse failures', async function() { +test('accepts config file - reports parse failures', async function () { try { await documentation( ['build fixture/sorting/input.js -c fixture/config-malformed.json'], @@ -89,29 +91,21 @@ test.skip('accepts config file - reports parse failures', async function() { } }); -test.skip('--shallow option', async function() { +test('--shallow option', async function () { const data = await documentation([ 'build --shallow fixture/internal.input.js' ]); expect(data.length).toBe(0); }); -test.skip('external modules option', async function() { - const data = await documentation([ - 'build fixture/external.input.js ' + - '--external=external --external=external/node_modules' - ]); - expect(data.length).toBe(2); -}); - -test.skip('when a file is specified both in a glob and explicitly, it is only documented once', async function() { +test('when a file is specified both in a glob and explicitly, it is only documented once', async function () { const data = await documentation([ 'build fixture/simple.input.js fixture/simple.input.*' ]); expect(data.length).toBe(1); }); -test.skip('extension option', async function() { +test('extension option', async function () { const data = await documentation([ 'build fixture/extension/index.otherextension ' + '--requireExtension=otherextension --parseExtension=otherextension' @@ -119,12 +113,12 @@ test.skip('extension option', async function() { expect(data.length).toBe(1); }); -test.skip('extension option', function() { +test('extension option', function () { return documentation(['build fixture/extension.jsx']); }); -describe('invalid arguments', function() { - test.skip('bad -f option', async function() { +describe('invalid arguments', function () { + test('bad -f option', async function () { try { await documentation( ['build -f DOES-NOT-EXIST fixture/internal.input.js'], @@ -136,7 +130,7 @@ describe('invalid arguments', function() { } }); - test.skip('html with no destination', async function() { + test('html with no destination', async function () { try { await documentation(['build -f html fixture/internal.input.js']); } catch (err) { @@ -150,7 +144,7 @@ describe('invalid arguments', function() { } }); - test.skip('bad command', async function() { + test('bad command', async function () { try { await documentation(['-f html fixture/internal.input.js'], {}, false); } catch (err) { @@ -159,8 +153,9 @@ describe('invalid arguments', function() { }); }); -const semver = /\bv?(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z-]+(?:\.[\da-z-]+)*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?\b/gi; -test.skip('--config', async function() { +const semver = + /\bv?(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z-]+(?:\.[\da-z-]+)*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?\b/gi; +test('--config', async function () { const dst = path.join(os.tmpdir(), (Date.now() + Math.random()).toString()); fs.mkdirSync(dst); const outputIndex = path.join(dst, 'index.html'); @@ -173,31 +168,27 @@ test.skip('--config', async function() { false ); let output = fs.readFileSync(outputIndex, 'utf8'); - const version = require('../package.json').version; + const version = (await import('../package.json')).default.version; output = output.replace(new RegExp(version.replace(/\./g, '\\.'), 'g'), ''); expect(output).toMatchSnapshot(); }); -test.skip('--version', async function() { +test('--version', async function () { const output = await documentation(['--version'], {}, false); expect(output).toBeTruthy(); }); -describe('lint command', function() { - test.skip('generates lint output', async function() { +describe('lint command', function () { + test('generates lint output', async function () { try { await documentation(['lint fixture/lint/lint.input.js'], {}, false); } catch (err) { - const data = err.stderr - .toString() - .split('\n') - .slice(2) - .join('\n'); + const data = err.stderr.toString().split('\n').slice(2).join('\n'); expect(data).toMatchSnapshot(); } }); - test.skip('generates no output on a good file', async function() { + test('generates no output on a good file', async function () { const data = await documentation( ['lint fixture/simple.input.js'], {}, @@ -206,7 +197,7 @@ describe('lint command', function() { expect(data).toBe(''); }); - test.skip('exposes syntax error on a bad file', async function() { + test('exposes syntax error on a bad file', async function () { try { await documentation( ['lint fixture/bad/syntax.input', '--parseExtension input'], @@ -218,7 +209,7 @@ describe('lint command', function() { } }); - test.skip('lint with no inputs', async function() { + test('lint with no inputs', async function () { try { await documentation( ['lint'], @@ -232,7 +223,7 @@ describe('lint command', function() { } }); - test.skip('generates lint output with shallow', async function() { + test('generates lint output with shallow', async function () { const data = await documentation( ['lint fixture/lint/lint.input.shallow.js --shallow'], {}, @@ -242,7 +233,7 @@ describe('lint command', function() { }); }); -test.skip('given no files', async function() { +test('given no files', async function () { try { await documentation(['build']); } catch (err) { @@ -256,7 +247,7 @@ test.skip('given no files', async function() { } }); -test.skip('with an invalid command', async function() { +test('with an invalid command', async function () { try { await documentation(['invalid'], {}, false); } catch (err) { @@ -264,7 +255,7 @@ test.skip('with an invalid command', async function() { } }); -test.skip('--access flag', async function() { +test.skip('--access flag', async function () { const data = await documentation( ['build --shallow fixture/internal.input.js -a public'], {}, @@ -273,23 +264,14 @@ test.skip('--access flag', async function() { expect(data).toBe('[]'); }); -test.skip('--private flag', async function() { - const data = await documentation( - ['build fixture/internal.input.js --private'], - {}, - false - ); - expect(data.length > 2).toBeTruthy(); -}); - -test.skip('--infer-private flag', async function() { +test.skip('--infer-private flag', async function () { const data = await documentation( ['build fixture/infer-private.input.js --infer-private ^_'], {}, false ); // This uses JSON.parse with a reviver used as a visitor. - JSON.parse(data, function(n, v) { + JSON.parse(data, function (n, v) { // Make sure we do not see any names that match `^_`. if (n === 'name') { expect(typeof v).toBe('string'); @@ -299,7 +281,7 @@ test.skip('--infer-private flag', async function() { }); }); -test.skip('write to file', async function() { +test.skip('write to file', async function () { const dst = path.join(os.tmpdir(), (Date.now() + Math.random()).toString()); const data = await documentation( @@ -311,7 +293,7 @@ test.skip('write to file', async function() { expect(fs.existsSync(dst)).toBeTruthy(); }); -test.skip('write to html', async function() { +test.skip('write to html', async function () { const dstDir = path.join( os.tmpdir(), (Date.now() + Math.random()).toString() @@ -327,7 +309,7 @@ test.skip('write to html', async function() { expect(fs.existsSync(path.join(dstDir, 'index.html'))).toBeTruthy(); }); -test.skip('write to html with custom theme', async function() { +test.skip('write to html with custom theme', async function () { const dstDir = path.join( os.tmpdir(), (Date.now() + Math.random()).toString() @@ -346,7 +328,7 @@ test.skip('write to html with custom theme', async function() { expect(fs.readFileSync(path.join(dstDir, 'index.html'), 'utf8')).toBeTruthy(); }); -test.skip('write to html, highlightAuto', function() { +test.skip('write to html, highlightAuto', function () { const fixture = 'fixture/auto_lang_hljs/multilanguage.input.js'; const config = 'fixture/auto_lang_hljs/config.yml'; const dstDir = path.join( @@ -374,7 +356,7 @@ test.skip('write to html, highlightAuto', function() { }); }); -test.skip('fatal error', async function() { +test.skip('fatal error', async function () { try { await documentation( ['build --shallow fixture/bad/syntax.input --parseExtension input'], @@ -386,7 +368,22 @@ test.skip('fatal error', async function() { } }); -test.skip('build --document-exported', async function() { +test('build GFM (e.g. markdown tables) for -f md', async function () { + const data = await documentation( + ['build', 'fixture/html/nested.input.js', '--shallow', '-f', 'md'], + {}, + false + ); + expect(data).toMatchSnapshot(); + expect(data).toMatch( + `| Col 1 | Col 2 | Col 3 | +| ----- | ----- | ----- | +| Dat 1 | Dat 2 | Dat 3 | +| Dat 4 | Dat 5 | Dat 6 |` + ); +}); + +test.skip('build --document-exported', async function () { const data = await documentation( ['build fixture/document-exported.input.js --document-exported -f md'], {}, @@ -395,7 +392,7 @@ test.skip('build --document-exported', async function() { expect(data).toMatchSnapshot(); }); -test.skip('build large file without error (no deoptimized styling error)', function() { +test.skip('build large file without error (no deoptimized styling error)', function () { const dstFile = path.join(os.tmpdir(), (Date.now() + Math.random()).toString()) + '.js'; let contents = ''; @@ -409,12 +406,12 @@ test.skip('build large file without error (no deoptimized styling error)', funct }); }); -test.skip('should use browser resolve', async function() { +test.skip('should use browser resolve', async function () { const data = await documentation(['build fixture/resolve/index.js']); expect(normalize(data)).toMatchSnapshot(); }); -test.skip('should use node resolve', async function() { +test.skip('should use node resolve', async function () { const data = await documentation([ 'build fixture/resolve/index.js --resolve node' ]); diff --git a/__tests__/fixture/auto_lang_hljs/multilanguage.input.js b/__tests__/fixture/auto_lang_hljs/multilanguage.input.js index 5d16141fd..a14bb7835 100644 --- a/__tests__/fixture/auto_lang_hljs/multilanguage.input.js +++ b/__tests__/fixture/auto_lang_hljs/multilanguage.input.js @@ -5,7 +5,7 @@ * var myFoo = new Foo('[data-foo]'); * myFoo.foo(42); * @example - *

    Data-Foo Element in the dom

    + *

    Data-Foo Element in the dom

    * @example * [data-foo] { * background-color: red; diff --git a/__tests__/fixture/class.input.js b/__tests__/fixture/class.input.js index df1268ee7..15fed4af0 100644 --- a/__tests__/fixture/class.input.js +++ b/__tests__/fixture/class.input.js @@ -1,6 +1,7 @@ /** * This is my class, a demo thing. * @class MyClass + * @implements {MyInterface} * @property {number} howMany how many things it contains */ function MyClass() { diff --git a/__tests__/fixture/custom_theme/index.js b/__tests__/fixture/custom_theme/index.js index e1f1f1ed0..5bd09e836 100644 --- a/__tests__/fixture/custom_theme/index.js +++ b/__tests__/fixture/custom_theme/index.js @@ -9,7 +9,7 @@ module.exports = function(comments, options, callback) { new File({ base: '/', path: '/index.html', - contents: new Buffer('Hello world') + contents: Buffer.from('Hello world') }) ]); }; diff --git a/__tests__/fixture/es6.input.js b/__tests__/fixture/es6.input.js index dde95b11e..05ac68689 100644 --- a/__tests__/fixture/es6.input.js +++ b/__tests__/fixture/es6.input.js @@ -11,9 +11,9 @@ function destructure({ /** * Similar, but with an array * @example - * destructure([1, 2, 3]) + * destructure2([0, 1, 2, 3]) */ -function destructure([a, b, c]) {} +function destructure2([, a, b, c]) {} /** * This function returns the number one. @@ -172,3 +172,18 @@ export function isArrayEqualWith( export function paramWithMemberType(a: atype.property): boolean { return true; } + +/** babel parser plugins */ +class A { + // classPrivateProperties + #b = 1; + // classPrivateMethods + #c(a, b) { + // numericSeparator + let y = 100_000; + // nullishCoalescingOperator + let x = a ?? b; + // logicalAssignment + return (x &&= b?.b |> String.fromCharCode); + } +} diff --git a/__tests__/fixture/flow-exported-opaque-type.input.js b/__tests__/fixture/flow-exported-opaque-type.input.js new file mode 100644 index 000000000..9bcf2e647 --- /dev/null +++ b/__tests__/fixture/flow-exported-opaque-type.input.js @@ -0,0 +1,4 @@ +// @flow + +/** MyOpaqueType Description Here */ +export opaque type MyOpaqueType: string = string \ No newline at end of file diff --git a/__tests__/fixture/flow-unnamed-params.input.js b/__tests__/fixture/flow-unnamed-params.input.js index 113e2968e..f99d777ae 100644 --- a/__tests__/fixture/flow-unnamed-params.input.js +++ b/__tests__/fixture/flow-unnamed-params.input.js @@ -11,3 +11,6 @@ type T = (string[]) => { num: number }; /** T2 */ type T2 = (a: string[]) => { num: number }; + +/** T3 */ +type T3 = (a?: string) => { num: number }; diff --git a/__tests__/fixture/html/nested.input.js b/__tests__/fixture/html/nested.input.js index 5af9ef186..4088ea8fc 100644 --- a/__tests__/fixture/html/nested.input.js +++ b/__tests__/fixture/html/nested.input.js @@ -112,7 +112,7 @@ function bar() { * Rest property function * @returns {undefined} nothing */ -function bar(...toys: Number) { +function bar2(...toys: Number) { return undefined; } @@ -123,7 +123,7 @@ function bar(...toys: Number) { * * @returns {undefined} nothing */ -function bar() { +function bar3() { return undefined; } @@ -145,6 +145,17 @@ class Foo { get bar() {} } +/** + * This is Foobar + * must have a distinct id from Foo.bar + */ +class Foobar { + /** + * This is bar + */ + get bar() { } +} + /** * I am the container of stream types */ @@ -158,3 +169,11 @@ var customStreams = {}; customStreams.passthrough = function() { this.custom = true; }; + +/** + * | Col 1 | Col 2 | Col 3 | + * |-------|-------|-------| + * | Dat 1 | Dat 2 | Dat 3 | + * | Dat 4 | Dat 5 | Dat 6 | + */ + var tableObj = {}; \ No newline at end of file diff --git a/__tests__/fixture/import.meta.input.js b/__tests__/fixture/import.meta.input.js new file mode 100644 index 000000000..a2fd80604 --- /dev/null +++ b/__tests__/fixture/import.meta.input.js @@ -0,0 +1,4 @@ +import x from "y"; + + +console.log(import.meta.url); \ No newline at end of file diff --git a/__tests__/fixture/interface.input.js b/__tests__/fixture/interface.input.js index 9bc49bbba..092060378 100644 --- a/__tests__/fixture/interface.input.js +++ b/__tests__/fixture/interface.input.js @@ -2,6 +2,8 @@ * This is my interface. */ interface Foo extends Bar, Baz { + /** This is prop 1 */ prop1: number, + /** This is prop 2 */ prop2: string } diff --git a/__tests__/fixture/meta.input.js b/__tests__/fixture/meta.input.js index 6a390e06c..e5b61603d 100644 --- a/__tests__/fixture/meta.input.js +++ b/__tests__/fixture/meta.input.js @@ -2,8 +2,6 @@ * This description is ignored because the method has a tagged description. * @returns {number} numberone * @description This function returns the number one. - * @see {@link http://github.com/|github} - * @see TestCase * @see [markdown link](http://foo.com/) * @version 1.0.0 * @since 2.0.0 diff --git a/__tests__/fixture/nest_events.input.js b/__tests__/fixture/nest_events.input.js new file mode 100644 index 000000000..ce842eb14 --- /dev/null +++ b/__tests__/fixture/nest_events.input.js @@ -0,0 +1,13 @@ +/** + * Klass description + * + * @class Klass + */ + + + /** + * Klass event + * @event bar + * @memberof Klass + */ +bar(); \ No newline at end of file diff --git a/__tests__/fixture/sort-order-alpha.input.js b/__tests__/fixture/sort-order-alpha.input.js index 4ef2be662..3665149f9 100644 --- a/__tests__/fixture/sort-order-alpha.input.js +++ b/__tests__/fixture/sort-order-alpha.input.js @@ -1,4 +1,4 @@ -// Options: {"sortOrder": "alpha"} +// Options: {"sortOrder": ["alpha"]} /** */ function b() {} diff --git a/__tests__/fixture/vue.input.vue b/__tests__/fixture/vue.input.vue index db991fccd..94c625aa5 100644 --- a/__tests__/fixture/vue.input.vue +++ b/__tests__/fixture/vue.input.vue @@ -10,6 +10,7 @@ */ export default { +/** props */ props: { /** diff --git a/__tests__/format_type.js b/__tests__/format_type.js index 0f09b69ec..a2540003b 100644 --- a/__tests__/format_type.js +++ b/__tests__/format_type.js @@ -1,9 +1,10 @@ /*eslint max-len: 0 */ -const _formatType = require('../src/output/util/format_type'); -const LinkerStack = require('../src/output/util/linker_stack'); -const remark = require('remark'); -const parse = require('doctrine-temporary-fork').parse; +import _formatType from '../src/output/util/format_type.js'; +import LinkerStack from '../src/output/util/linker_stack'; +import { remark } from 'remark'; +import doctrine from 'doctrine-temporary-fork'; +const parse = doctrine.parse; function stringify(children) { return remark().stringify({ @@ -12,7 +13,7 @@ function stringify(children) { }); } -test('formatType', function() { +test('formatType', function () { const linkerStack = new LinkerStack({}); const formatType = _formatType.bind(undefined, linkerStack.link); [ @@ -23,47 +24,47 @@ test('formatType', function() { ['namedType.typeProperty', 'namedType.typeProperty'], [ 'Array|undefined', - '([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) \\| [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))' + '([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Array) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/undefined))' ], [ 'Array', - '[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)>' + '[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Array)<[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)>' ], [ 'number!', - '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)!' + '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)!' ], - ["('pre'|'post')", '(`"pre"` \\| `"post"`)'], - ["'pre'|'post'", '(`"pre"` \\| `"post"`)'], + ["('pre'|'post')", '(`"pre"` | `"post"`)'], + ["'pre'|'post'", '(`"pre"` | `"post"`)'], [ 'function(string, boolean)', - 'function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean))' + 'function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/String), [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Boolean))' ], [ 'function(string, boolean): number', - 'function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)): [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)' + 'function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/String), [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Boolean)): [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)' ], ['function()', 'function ()'], [ 'function(this:something, string)', - 'function (this: something, [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))' + 'function (this: something, [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/String))' ], ['function(new:something)', 'function (new: something)'], [ '{myNum: number, myObject}', - '{myNum: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), myObject}' + '{myNum: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number), myObject}' ], [ '[string,]', - '\\[[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)]' + '\\[[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/String)]' ], [ 'number?', - '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?' + '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)?' ], [ 'number', - '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)' + '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)' ], ['?', '?'], ['void', 'void'], @@ -71,24 +72,24 @@ test('formatType', function() { ['function(a):void', 'function (a): void'], [ 'number=', - '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?' + '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)?' ], [ '...number', - '...[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)' + '...[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)' ], [ 'undefined', - '[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)' + '[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/undefined)' ] - ].forEach(function(example) { + ].forEach(function (example) { expect( stringify( formatType( parse('@param {' + example[0] + '} a', { sloppy: true }).tags[0].type ) ) - ).toEqual(example[1]); + ).toEqual(example[1] + '\n'); }); expect( @@ -96,13 +97,13 @@ test('formatType', function() { formatType(parse('@param {number} [a=1]', { sloppy: true }).tags[0].type) ) ).toEqual( - '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?' + '[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global\\_Objects/Number)?\n' ); expect( stringify( _formatType( - function(str) { + function (str) { return str.toUpperCase(); }, parse('@param {Foo} a', { @@ -110,11 +111,11 @@ test('formatType', function() { }).tags[0].type ) ) - ).toEqual('[Foo](FOO)'); + ).toEqual('[Foo](FOO)\n'); - expect(stringify(formatType())).toEqual('any'); + expect(stringify(formatType())).toEqual('any\n'); - expect(function() { + expect(function () { formatType({}); }).toThrow(); }); diff --git a/__tests__/index.js b/__tests__/index.js index ed945e56e..bc8647c0e 100644 --- a/__tests__/index.js +++ b/__tests__/index.js @@ -1,7 +1,7 @@ -const documentation = require('../src/'); -const os = require('os'); -const path = require('path'); -const fs = require('fs'); +import * as documentation from '../src/index.js'; +import os from 'os'; +import path from 'path'; +import fs from 'fs'; function inputs(contents) { const dirEntry = os.tmpdir(); @@ -21,7 +21,7 @@ function cleanup(comments) { }); } -test('lint', async function() { +test('lint', async function () { const { paths } = inputs({ 'index.js': '/** hi */var name = 1;' }); @@ -30,7 +30,7 @@ test('lint', async function() { expect(data).toEqual(''); }); -test('build', async function() { +test('build', async function () { const { paths } = inputs({ 'index.js': '/** hi */var name = 1;' }); @@ -46,7 +46,7 @@ test('build', async function() { expect(json).toMatchSnapshot(); }); -test('expandInputs', async function() { +test('expandInputs', async function () { const { paths } = inputs({ 'index.js': '/** hi */var name = 1;' }); diff --git a/__tests__/lib/__snapshots__/server.js.snap b/__tests__/lib/__snapshots__/server.js.snap deleted file mode 100644 index 102e52d2f..000000000 --- a/__tests__/lib/__snapshots__/server.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`server 1`] = `"test = 123"`; - -exports[`server 2`] = `"var test = 123;"`; - -exports[`server 3`] = `""`; diff --git a/__tests__/lib/__snapshots__/sort.js.snap b/__tests__/lib/__snapshots__/sort.js.snap index 26a127dbb..f35e6bf19 100644 --- a/__tests__/lib/__snapshots__/sort.js.snap +++ b/__tests__/lib/__snapshots__/sort.js.snap @@ -8,52 +8,14 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - }, "type": "text", "value": "The Snowflake", }, ], "depth": 1, - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "heading", }, ], - "position": Object { - "end": Object { - "column": 1, - "line": 2, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "kind": "note", @@ -76,12 +38,26 @@ Array [ "sortKey": "b", }, "name": "carrot", + "path": Array [ + Object { + "name": "carrot", + "scope": "static", + "toc": true, + }, + ], }, Object { "context": Object { "sortKey": "c", }, "name": "bananas", + "path": Array [ + Object { + "name": "bananas", + "scope": "static", + "toc": true, + }, + ], }, ] `; @@ -94,52 +70,14 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 3, - "line": 1, - "offset": 2, - }, - }, "type": "text", "value": "The Snowflake", }, ], "depth": 1, - "position": Position { - "end": Object { - "column": 16, - "line": 1, - "offset": 15, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "heading", }, ], - "position": Object { - "end": Object { - "column": 1, - "line": 2, - "offset": 16, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "kind": "note", @@ -162,12 +100,26 @@ Array [ "sortKey": "b", }, "name": "carrot", + "path": Array [ + Object { + "name": "carrot", + "scope": "static", + "toc": true, + }, + ], }, Object { "context": Object { "sortKey": "c", }, "name": "bananas", + "path": Array [ + Object { + "name": "bananas", + "scope": "static", + "toc": true, + }, + ], }, ] `; @@ -178,6 +130,7 @@ Array [ "context": Object { "sortKey": "a", }, + "kind": "function", "memberof": "classB", "name": "apples", }, @@ -185,7 +138,56 @@ Array [ "context": Object { "sortKey": "c", }, + "kind": "function", + "memberof": "classA", + "name": "bananas", + }, + Object { + "context": Object { + "sortKey": "b", + }, "memberof": "classB", + "name": "carrot", + }, +] +`; + +exports[`sort toc with files absolute path 3`] = ` +Array [ + Object { + "context": Object { + "sortKey": "b", + }, + "memberof": "classB", + "name": "carrot", + }, + Object { + "context": Object { + "sortKey": "a", + }, + "kind": "function", + "memberof": "classB", + "name": "apples", + }, + Object { + "context": Object { + "sortKey": "c", + }, + "kind": "function", + "memberof": "classA", + "name": "bananas", + }, +] +`; + +exports[`sort toc with files absolute path 4`] = ` +Array [ + Object { + "context": Object { + "sortKey": "c", + }, + "kind": "function", + "memberof": "classA", "name": "bananas", }, Object { @@ -195,5 +197,13 @@ Array [ "memberof": "classB", "name": "carrot", }, + Object { + "context": Object { + "sortKey": "a", + }, + "kind": "function", + "memberof": "classB", + "name": "apples", + }, ] `; diff --git a/__tests__/lib/filter_access.js b/__tests__/lib/filter_access.js index 06176343d..508f17e66 100644 --- a/__tests__/lib/filter_access.js +++ b/__tests__/lib/filter_access.js @@ -1,6 +1,6 @@ -const filterAccess = require('../../src/filter_access'); +import filterAccess from '../../src/filter_access.js'; -test('filterAccess ignore', function() { +test('filterAccess ignore', function () { expect( filterAccess( ['public', 'protected', 'undefined'], @@ -14,7 +14,7 @@ test('filterAccess ignore', function() { ).toEqual([]); }); -test('filterAccess public, protected, undefined, no private', function() { +test('filterAccess public, protected, undefined, no private', function () { expect( filterAccess( ['public', 'protected', 'undefined'], @@ -46,7 +46,7 @@ test('filterAccess public, protected, undefined, no private', function() { ]); }); -test('filterAccess explicit public', function() { +test('filterAccess explicit public', function () { expect( filterAccess( ['public'], @@ -64,7 +64,7 @@ test('filterAccess explicit public', function() { ]); }); -test('filterAccess override', function() { +test('filterAccess override', function () { expect( filterAccess( ['private'], @@ -81,7 +81,7 @@ test('filterAccess override', function() { ]); }); -test('filterAccess nesting', function() { +test('filterAccess nesting', function () { expect( filterAccess( ['public', 'protected', 'undefined'], diff --git a/__tests__/lib/flow_doctrine.js b/__tests__/lib/flow_doctrine.js index 88e2f63da..cd53a7855 100644 --- a/__tests__/lib/flow_doctrine.js +++ b/__tests__/lib/flow_doctrine.js @@ -1,6 +1,6 @@ -const flowDoctrine = require('../../src/flow_doctrine.js'); -const parse = require('../../src/parsers/javascript'); -const FLOW_TYPES = require('@babel/types').FLOW_TYPES; +import flowDoctrine from '../../src/flow_doctrine.js'; +import parse from '../../src/parsers/javascript'; +import { FLOW_TYPES } from '@babel/types'; function toComment(fn, filename) { return parse( @@ -12,8 +12,8 @@ function toComment(fn, filename) { )[0]; } -test('flowDoctrine', function() { - const types = FLOW_TYPES.filter(function(type) { +test('flowDoctrine', function () { + const types = FLOW_TYPES.filter(function (type) { return type.match(/\wTypeAnnotation$/); }); @@ -311,6 +311,7 @@ test('flowDoctrine', function() { 'InterfaceTypeAnnotation', 'IntersectionTypeAnnotation', 'EmptyTypeAnnotation', + 'SymbolTypeAnnotation', 'TypeofTypeAnnotation' ]); }); diff --git a/__tests__/lib/git/find_git.js b/__tests__/lib/git/find_git.js index 8619ac986..99eaba3e3 100644 --- a/__tests__/lib/git/find_git.js +++ b/__tests__/lib/git/find_git.js @@ -1,16 +1,36 @@ -const mock = require('mock-fs'); -const mockRepo = require('../../utils').mockRepo; -const path = require('path'); -const findGit = require('../../../src/git/find_git'); +import mock from 'mock-fs'; +import { mockRepo } from '../../utils.js'; +import path from 'path'; +import findGit from '../../../src/git/find_git.js'; +import { fileURLToPath } from 'url'; -test('findGit', function() { - mock(mockRepo.master); +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); - const root = path.parse(__dirname).root; +test('findGit', function () { + mock(mockRepo.master); + const root = + path.parse(__dirname).root + path.join('my', 'repository', 'path'); + const masterPaths = findGit(path.join(root, 'index.js')); + mock.restore(); - expect( - findGit(root + path.join('my', 'repository', 'path', 'index.js')) - ).toBe(root + path.join('my', 'repository', 'path', '.git')); + expect(masterPaths).toEqual({ + git: path.join(root, '.git'), + root + }); + mock(mockRepo.submodule); + const submoduleRoot = path.join(root, '..', 'my.submodule'); + const submodulePaths = findGit(path.join(submoduleRoot, 'index.js')); mock.restore(); + + expect(submodulePaths).toEqual({ + git: path.join( + path.dirname(submoduleRoot), + '.git', + 'modules', + 'my.submodule' + ), + root: submoduleRoot + }); }); diff --git a/__tests__/lib/git/url_prefix.js b/__tests__/lib/git/url_prefix.js index 0a917352f..5ff879af6 100644 --- a/__tests__/lib/git/url_prefix.js +++ b/__tests__/lib/git/url_prefix.js @@ -1,27 +1,42 @@ -const mock = require('mock-fs'); -const mockRepo = require('../../utils').mockRepo; -const getGithubURLPrefix = require('../../../src/git/url_prefix'); -const parsePackedRefs = getGithubURLPrefix.parsePackedRefs; +import mock from 'mock-fs'; +import { mockRepo } from '../../utils.js'; +import { + getGithubURLPrefix, + parsePackedRefs +} from '../../../src/git/url_prefix.js'; -test('getGithubURLPrefix', function() { +test('getGithubURLPrefix', function () { mock(mockRepo.master); - - expect(getGithubURLPrefix('/my/repository/path/')).toBe( - 'https://github.com/foo/bar/blob/this_is_the_sha/' - ); - + const masterUrl = getGithubURLPrefix({ + git: '/my/repository/path/.git', + root: '/my/repository/path' + }); mock.restore(); + expect(masterUrl).toBe('https://github.com/foo/bar/blob/this_is_the_sha/'); + mock(mockRepo.detached); + const detachedUrl = getGithubURLPrefix({ + git: '/my/repository/path/.git', + root: '/my/repository/path' + }); + mock.restore(); - expect(getGithubURLPrefix('/my/repository/path/')).toBe( + expect(detachedUrl).toBe( 'https://github.com/foo/bar/blob/e4cb2ffe677571d0503e659e4e64e01f45639c62/' ); + mock(mockRepo.submodule); + const submoduleUrl = getGithubURLPrefix({ + git: '/my/repository/.git/modules/my.submodule', + root: '/my/repository/my.submodule' + }); mock.restore(); + + expect(submoduleUrl).toBe('https://github.com/foo/bar/blob/this_is_the_sha/'); }); -test('parsePackedRefs', function() { +test('parsePackedRefs', function () { const input = '# pack-refs with: peeled fully-peeled\n' + '4acd658617928bd17ae7364ef2512630d97c007a refs/heads/babel-6\n' + diff --git a/__tests__/lib/github.js b/__tests__/lib/github.js index 4508d3ebb..fa8b1f3af 100644 --- a/__tests__/lib/github.js +++ b/__tests__/lib/github.js @@ -1,10 +1,13 @@ /* eslint no-unused-vars: 0 */ +import mock from 'mock-fs'; +import path from 'path'; +import { mockRepo } from '../utils.js'; +import parse from '../../src/parsers/javascript.js'; +import github from '../../src/github.js'; +import { fileURLToPath } from 'url'; -const mock = require('mock-fs'); -const path = require('path'); -const mockRepo = require('../utils').mockRepo; -const parse = require('../../src/parsers/javascript'); -const github = require('../../src/github'); +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); // mock-fs is causing some unusual side effects with jest-resolve // not being able to resolve modules so we've disabled these tests @@ -29,15 +32,15 @@ function evaluate(fn) { ); } -afterEach(function() { +afterEach(function () { mock.restore(); }); -test.skip('github', function() { +test.skip('github', function () { mock(mockRepo.master); expect( - evaluate(function() { + evaluate(function () { /** * get one * @returns {number} one @@ -52,11 +55,11 @@ test.skip('github', function() { }); }); -test.skip('malformed repository', function() { +test.skip('malformed repository', function () { mock(mockRepo.malformed); expect( - evaluate(function() { + evaluate(function () { /** * get one * @returns {number} one @@ -68,11 +71,11 @@ test.skip('malformed repository', function() { ).toBe(undefined); }); -test.skip('enterprise repository', function() { +test.skip('enterprise repository', function () { mock(mockRepo.enterprise); expect( - evaluate(function() { + evaluate(function () { /** * get one * @returns {number} one @@ -83,16 +86,15 @@ test.skip('enterprise repository', function() { })[0].context.github ).toEqual({ path: 'index.js', - url: - 'https://github.enterprise.com/foo/bar/blob/this_is_the_sha/index.js#L6-L8' + url: 'https://github.enterprise.com/foo/bar/blob/this_is_the_sha/index.js#L6-L8' }); }); -test.skip('typedef', function() { +test.skip('typedef', function () { mock(mockRepo.master); expect( - evaluate(function() { + evaluate(function () { /** * A number, or a string containing a number. * @typedef {(number|string)} NumberLike diff --git a/__tests__/lib/hierarchy.js b/__tests__/lib/hierarchy.js index de763e929..6ed629ac0 100644 --- a/__tests__/lib/hierarchy.js +++ b/__tests__/lib/hierarchy.js @@ -1,5 +1,5 @@ -const parse = require('../../src/parsers/javascript'); -const hierarchy = require('../../src/hierarchy'); +import parse from '../../src/parsers/javascript.js'; +import hierarchy from '../../src/hierarchy.js'; function toComments(fn, filename) { return parse( @@ -16,13 +16,13 @@ function evaluate(fn, callback) { } function map(arr, prop) { - return arr.map(function(item) { + return arr.map(function (item) { return item[prop]; }); } -test('hierarchy', function() { - const comments = evaluate(function() { +test('hierarchy', function () { + const comments = evaluate(function () { /** * @name Class * @class @@ -66,8 +66,8 @@ test('hierarchy', function() { expect(map(classMembers.events[0].path, 'name')).toEqual(['Class', 'event']); }); -test('hierarchy - nesting', function() { - const comments = evaluate(function() { +test('hierarchy - nesting', function () { + const comments = evaluate(function () { /** * @name Parent * @class @@ -105,8 +105,8 @@ test('hierarchy - nesting', function() { ]); }); -test('hierarchy - multisignature', function() { - const comments = evaluate(function() { +test('hierarchy - multisignature', function () { + const comments = evaluate(function () { /** * @name Parent * @class @@ -126,8 +126,8 @@ test('hierarchy - multisignature', function() { expect(map(comments[0].members.instance, 'name')).toEqual(['foo', 'foo']); }); -test('hierarchy - missing memberof', function() { - const test = evaluate(function() { +test('hierarchy - missing memberof', function () { + const test = evaluate(function () { /** * @name test * @memberof DoesNotExist @@ -142,8 +142,8 @@ test('hierarchy - missing memberof', function() { ]); }); -test('hierarchy - anonymous', function() { - const result = evaluate(function() { +test('hierarchy - anonymous', function () { + const result = evaluate(function () { /** Test */ })[0]; @@ -154,8 +154,8 @@ test('hierarchy - anonymous', function() { ]); }); -test('hierarchy - object prototype member names', function() { - const comments = evaluate(function() { +test('hierarchy - object prototype member names', function () { + const comments = evaluate(function () { /** * @name should * @function diff --git a/__tests__/lib/infer/__snapshots__/params.js.snap b/__tests__/lib/infer/__snapshots__/params.js.snap index 0c7e8dd46..25abe170d 100644 --- a/__tests__/lib/infer/__snapshots__/params.js.snap +++ b/__tests__/lib/infer/__snapshots__/params.js.snap @@ -1,5 +1,256 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`inferParams (typescript) 1`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "a", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams (typescript) 2`] = ` +Array [ + Object { + "anonymous": true, + "name": "$0", + "properties": Array [ + Object { + "lineNumber": 1, + "name": "$0.0", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, + Object { + "lineNumber": 1, + "name": "$0.1", + "title": "param", + }, + Object { + "anonymous": true, + "name": "$0.2", + "properties": Array [ + Object { + "lineNumber": 1, + "name": "$0.2.c", + "title": "param", + }, + ], + "title": "param", + "type": Object { + "name": "Object", + "type": "NameExpression", + }, + }, + ], + "title": "param", + "type": Object { + "name": "Array", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams (typescript) 3`] = ` +Array [ + Object { + "default": "4", + "lineNumber": 1, + "name": "x", + "title": "param", + "type": Object { + "name": "number", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams (typescript) 4`] = ` +Array [ + Object { + "lineNumber": 3, + "name": "opts", + "title": "param", + "type": Object { + "fields": Array [ + Object { + "key": "x", + "type": "FieldType", + "value": Object { + "name": "string", + "type": "NameExpression", + }, + }, + ], + "type": "RecordType", + }, + }, +] +`; + +exports[`inferParams (typescript) 5`] = ` +Array [ + Object { + "lineNumber": 3, + "name": "opts", + "title": "param", + "type": Object { + "fields": Array [ + Object { + "key": "foo", + "type": "FieldType", + "value": Object { + "name": "string", + "type": "NameExpression", + }, + }, + ], + "type": "RecordType", + }, + }, +] +`; + +exports[`inferParams (typescript) 6`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "a", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "RestType", + }, + }, +] +`; + +exports[`inferParams (typescript) 7`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "a", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "OptionalType", + }, + }, +] +`; + +exports[`inferParams (typescript) 8`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "a", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "OptionalType", + }, + }, +] +`; + +exports[`inferParams (typescript) 9`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "a", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "OptionalType", + }, + }, +] +`; + +exports[`inferParams (typescript) 10`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "a", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "OptionalType", + }, + }, +] +`; + +exports[`inferParams (typescript) 11`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "v", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams (typescript) 12`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "v", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams (typescript) 13`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "v", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "RestType", + }, + }, +] +`; + exports[`inferParams 1`] = ` Array [ Object { @@ -83,51 +334,13 @@ Array [ Object { "children": Array [ Object { - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "text", "value": "renamed destructuring param", }, ], - "position": Position { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "indent": Array [], - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "paragraph", }, ], - "position": Object { - "end": Object { - "column": 28, - "line": 1, - "offset": 27, - }, - "start": Object { - "column": 1, - "line": 1, - "offset": 0, - }, - }, "type": "root", }, "lineNumber": 2, @@ -217,6 +430,66 @@ Array [ ] `; +exports[`inferParams 8`] = ` +Array [ + Object { + "default": "4", + "lineNumber": 1, + "name": "x", + "title": "param", + "type": Object { + "name": "number", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams 9`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "v", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams 10`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "v", + "title": "param", + "type": Object { + "name": "string", + "type": "NameExpression", + }, + }, +] +`; + +exports[`inferParams 11`] = ` +Array [ + Object { + "lineNumber": 1, + "name": "v", + "title": "param", + "type": Object { + "expression": Object { + "name": "string", + "type": "NameExpression", + }, + "type": "RestType", + }, + }, +] +`; + exports[`mergeTrees 1`] = ` Object { "errors": Array [ diff --git a/__tests__/lib/infer/access.js b/__tests__/lib/infer/access.js index 200d52b4d..df07fd834 100644 --- a/__tests__/lib/infer/access.js +++ b/__tests__/lib/infer/access.js @@ -1,46 +1,125 @@ -const parse = require('../../../src/parsers/javascript'); -const inferName = require('../../../src/infer/name'); -const inferAccess = require('../../../src/infer/access'); +import parse from '../../../src/parsers/javascript.js'; +import inferName from '../../../src/infer/name.js'; +import inferAccess from '../../../src/infer/access.js'; -function toComment(fn) { +function toComment(fn, filename) { return parse( { - source: '(' + fn.toString() + ')' + file: filename, + source: fn instanceof Function ? '(' + fn.toString() + ')' : fn }, {} )[0]; } -function evaluate(fn, re) { - return inferAccess(re)(inferName(toComment(fn))); +function evaluate(fn, re, filename) { + return inferAccess(re)(inferName(toComment(fn, filename))); } -test('inferAccess', function() { +test('inferAccess', function () { expect( - evaluate(function() { + evaluate(function () { /** Test */ function _name() {} }, '^_').access ).toBe('private'); expect( - evaluate(function() { + evaluate(function () { /** @private */ function name() {} }, '^_').access ).toBe('private'); expect( - evaluate(function() { + evaluate(function () { /** @public */ function _name() {} }, '^_').access ).toBe('public'); expect( - evaluate(function() { + evaluate(function () { /** Test */ function name_() {} }, '_$').access ).toBe('private'); + + expect( + evaluate( + ` + class Test { + /** */ + private foo() {} + } + `, + '_$', + 'test.ts' + ).access + ).toBe('private'); + + expect( + evaluate( + ` + class Test { + /** */ + protected foo() {} + } + `, + '_$', + 'test.ts' + ).access + ).toBe('protected'); + + expect( + evaluate( + ` + class Test { + /** */ + public foo() {} + } + `, + '_$', + 'test.ts' + ).access + ).toBe('public'); + + expect( + evaluate( + ` + abstract class Test { + /** */ + public abstract foo(); + } + `, + '_$', + 'test.ts' + ).access + ).toBe('public'); + + expect( + evaluate( + ` + class Test { + /** */ + readonly name: string; + } + `, + '_$', + 'test.ts' + ).readonly + ).toBe(true); + + expect( + evaluate( + ` + interface Test { + /** */ + readonly name: string; + } + `, + '_$', + 'test.ts' + ).readonly + ).toBe(true); }); diff --git a/__tests__/lib/infer/augments.js b/__tests__/lib/infer/augments.js index f409d27e1..c875fe68f 100644 --- a/__tests__/lib/infer/augments.js +++ b/__tests__/lib/infer/augments.js @@ -1,6 +1,6 @@ /*eslint-disable no-unused-vars*/ -const inferAugments = require('../../../src/infer/augments'); -const parse = require('../../../src/parsers/javascript'); +import inferAugments from '../../../src/infer/augments'; +import parse from '../../../src/parsers/javascript'; function toComment(fn, filename) { return parse( @@ -12,15 +12,39 @@ function toComment(fn, filename) { )[0]; } -function evaluate(code) { - return inferAugments(toComment(code)); +function evaluate(code, filename) { + return inferAugments(toComment(code, filename)); } -test('inferAugments', function() { +test('inferAugments', function () { expect(evaluate('/** */class A extends B {}').augments).toEqual([ { name: 'B', title: 'augments' } ]); + + expect(evaluate('/** */interface A extends B, C {}').augments).toEqual([ + { + name: 'B', + title: 'extends' + }, + { + name: 'C', + title: 'extends' + } + ]); + + expect( + evaluate('/** */interface A extends B, C {}', 'test.ts').augments + ).toEqual([ + { + name: 'B', + title: 'extends' + }, + { + name: 'C', + title: 'extends' + } + ]); }); diff --git a/__tests__/lib/infer/finders.js b/__tests__/lib/infer/finders.js index a421893fd..4c3a2b3b7 100644 --- a/__tests__/lib/infer/finders.js +++ b/__tests__/lib/infer/finders.js @@ -1,5 +1,5 @@ -const parse = require('../../../src/parsers/javascript'); -const findTarget = require('../../../src/infer/finders').findTarget; +import parse from '../../../src/parsers/javascript.js'; +import findTarget from '../../../src/infer/finders'; function toComment(fn) { if (typeof fn == 'function') { @@ -18,10 +18,10 @@ function evaluate(fn, re) { return toComment(fn); } -test('findTarget', function() { +test('findTarget', function () { expect( findTarget( - toComment(function() { + toComment(function () { /** Test */ const x = 10; }).context.ast @@ -30,7 +30,7 @@ test('findTarget', function() { expect( findTarget( - toComment(function() { + toComment(function () { const z = {}; /** Test */ @@ -41,7 +41,7 @@ test('findTarget', function() { expect( findTarget( - toComment(function() { + toComment(function () { const z = { /** Test */ y: 10 diff --git a/__tests__/lib/infer/implements.js b/__tests__/lib/infer/implements.js new file mode 100644 index 000000000..2dcc38f9e --- /dev/null +++ b/__tests__/lib/infer/implements.js @@ -0,0 +1,61 @@ +/*eslint-disable no-unused-vars*/ +import inferImplements from '../../../src/infer/implements'; +import parse from '../../../src/parsers/javascript'; + +function toComment(fn, filename) { + return parse( + { + file: filename, + source: fn instanceof Function ? '(' + fn.toString() + ')' : fn + }, + {} + )[0]; +} + +function evaluate(code, filename) { + return inferImplements(toComment(code, filename)); +} + +test('inferImplements (flow)', function () { + expect(evaluate('/** */class A implements B {}').implements).toEqual([ + { + name: 'B', + title: 'implements' + } + ]); + + expect(evaluate('/** */class A implements B, C {}').implements).toEqual([ + { + name: 'B', + title: 'implements' + }, + { + name: 'C', + title: 'implements' + } + ]); +}); + +test('inferImplements (typescript)', function () { + expect( + evaluate('/** */class A implements B {}', 'test.ts').implements + ).toEqual([ + { + name: 'B', + title: 'implements' + } + ]); + + expect( + evaluate('/** */class A implements B, C {}', 'test.ts').implements + ).toEqual([ + { + name: 'B', + title: 'implements' + }, + { + name: 'C', + title: 'implements' + } + ]); +}); diff --git a/__tests__/lib/infer/kind.js b/__tests__/lib/infer/kind.js index 854bfc953..703106c99 100644 --- a/__tests__/lib/infer/kind.js +++ b/__tests__/lib/infer/kind.js @@ -1,6 +1,6 @@ /*eslint-disable no-unused-vars*/ -const inferKind = require('../../../src/infer/kind'); -const parse = require('../../../src/parsers/javascript'); +import inferKind from '../../../src/infer/kind'; +import parse from '../../../src/parsers/javascript'; function toComment(fn, filename) { return parse( @@ -12,7 +12,7 @@ function toComment(fn, filename) { )[0]; } -test('inferKind', function() { +test('inferKind', function () { expect( inferKind({ kind: 'class', @@ -38,9 +38,15 @@ test('inferKind', function() { ).kind ).toBe('class'); + const abstractClass = inferKind( + toComment('/** */ abstract class C {}', 'test.ts') + ); + expect(abstractClass.kind).toBe('class'); + expect(abstractClass.abstract).toBe(true); + expect( inferKind( - toComment(function() { + toComment(function () { /** function */ function foo() {} foo(); @@ -50,9 +56,9 @@ test('inferKind', function() { expect( inferKind( - toComment(function() { + toComment(function () { /** function */ - const foo = function() {}; + const foo = function () {}; foo(); }) ).kind @@ -63,6 +69,12 @@ test('inferKind', function() { .kind ).toBe('interface'); + expect( + inferKind( + toComment('/** Exported interface */' + 'interface myinter {}', 'test.ts') + ).kind + ).toBe('interface'); + expect( inferKind( toComment( @@ -82,13 +94,19 @@ test('inferKind', function() { ).kind ).toBe('function'); - expect( - inferKind( - toComment( - '/** Export default function */' + 'export default function foo() {}' - ) - ).kind - ).toBe('function'); + const asyncFunction = inferKind( + toComment('/** Async function */' + 'async function foo() {}') + ); + + expect(asyncFunction.kind).toBe('function'); + expect(asyncFunction.async).toBe(true); + + const generatorFunction = inferKind( + toComment('/** Generator function */' + 'function *foo() {}') + ); + + expect(generatorFunction.kind).toBe('function'); + expect(generatorFunction.generator).toBe(true); expect( inferKind(toComment('class Foo { /** set b */ set b(v) { } }')).kind @@ -106,9 +124,53 @@ test('inferKind', function() { 'function' ); + const asyncMethod = inferKind( + toComment('class Foo { /** b */ async b(v) { } }') + ); + expect(asyncMethod.kind).toBe('function'); + expect(asyncMethod.async).toBe(true); + + const generatorMethod = inferKind( + toComment('class Foo { /** b */ *b(v) { } }') + ); + expect(generatorMethod.kind).toBe('function'); + expect(generatorMethod.generator).toBe(true); + + const abstractMethod = inferKind( + toComment('abstract class C { /** */ abstract foo(); }', 'test.ts') + ); + expect(abstractMethod.kind).toBe('function'); + expect(abstractMethod.abstract).toBe(true); + + expect( + inferKind(toComment('interface Foo { /** b */ b(v): void; }')).kind + ).toBe('function'); + + expect( + inferKind(toComment('interface Foo { /** b */ b: string; }')).kind + ).toBe('member'); + + expect( + inferKind(toComment('interface Foo { /** b */ b(v): void; }', 'test.ts')) + .kind + ).toBe('function'); + + expect( + inferKind(toComment('interface Foo { /** b */ b: string; }', 'test.ts')) + .kind + ).toBe('member'); + + expect(inferKind(toComment('/** */ enum Foo { A }', 'test.ts')).kind).toBe( + 'enum' + ); + + expect(inferKind(toComment('enum Foo { /** */ A }', 'test.ts')).kind).toBe( + 'member' + ); + expect( inferKind( - toComment(function() { + toComment(function () { /** class */ function Foo() {} }) @@ -117,7 +179,7 @@ test('inferKind', function() { expect( inferKind( - toComment(function() { + toComment(function () { /** undefined */ }) ).kind @@ -141,4 +203,21 @@ test('inferKind', function() { ) ).kind ).toBe('constant'); + + expect(inferKind(toComment('/** */' + 'type Foo = string')).kind).toBe( + 'typedef' + ); + + expect( + inferKind(toComment('/** */' + 'type Foo = string', 'test.ts')).kind + ).toBe('typedef'); + + const namespace = inferKind( + toComment( + '/** */ namespace Test { /** */ export function foo() {} }', + 'test.ts' + ) + ); + + expect(namespace.kind).toBe('namespace'); }); diff --git a/__tests__/lib/infer/membership.js b/__tests__/lib/infer/membership.js index cccc71108..e51f4b8ce 100644 --- a/__tests__/lib/infer/membership.js +++ b/__tests__/lib/infer/membership.js @@ -1,5 +1,6 @@ -const parse = require('../../../src/parsers/javascript'); -const inferMembership = require('../../../src/infer/membership')(); +import parse from '../../../src/parsers/javascript.js'; +import infer from '../../../src/infer/membership'; +const inferMembership = infer(); function toComment(fn, file) { return parse( @@ -12,7 +13,7 @@ function toComment(fn, file) { } function pick(obj, props) { - return props.reduce(function(memo, prop) { + return props.reduce(function (memo, prop) { if (obj[prop] !== undefined) { memo[prop] = obj[prop]; } @@ -27,10 +28,10 @@ function evaluate(fn, file) { function Foo() {} function lend() {} -test('inferMembership - explicit', function() { +test('inferMembership - explicit', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** * Test * @memberof Bar @@ -47,7 +48,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** * Test * @memberof Bar# @@ -63,7 +64,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** * Test * @memberof Bar.prototype @@ -79,7 +80,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** Test */ Foo.bar = 0; })[0], @@ -92,7 +93,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** Test */ Foo.prototype.bar = 0; })[0], @@ -105,7 +106,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** Test */ Foo.bar.baz = 0; })[0], @@ -118,7 +119,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** Test */ (0).baz = 0; })[0], @@ -128,7 +129,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { Foo.bar = { /** Test */ baz: 0 @@ -143,7 +144,24 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { + Foo.bar = { + baz: { + /** Test */ + test: 0 + } + }; + })[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo.bar.baz', + scope: 'static' + }); + + expect( + pick( + evaluate(function () { Foo.prototype = { /** Test */ bar: 0 @@ -159,12 +177,12 @@ test('inferMembership - explicit', function() { /* eslint object-shorthand: 0 */ expect( pick( - evaluate(function() { + evaluate(function () { Foo.prototype = { /** * Test */ - bar: function() {} + bar: function () {} }; })[0], ['memberof', 'scope'] @@ -176,7 +194,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { Foo.prototype = { /** * Test @@ -193,7 +211,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { const Foo = { /** Test */ baz: 0 @@ -209,10 +227,10 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { const Foo = { /** Test */ - baz: function() {} + baz: function () {} }; return Foo; })[0], @@ -225,7 +243,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { function Foo() { { /** */ @@ -242,7 +260,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { const Foo = function Bar() { { /** */ @@ -259,7 +277,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { class Foo { constructor() { { @@ -278,7 +296,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @memberof bar */ class Foo { /** */ @@ -294,7 +312,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @memberof bar */ class Foo { /** */ @@ -310,9 +328,188 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate( + ` + /** @memberof bar */ + abstract class Foo { + /** */ + abstract baz(); + } + `, + 'test.ts' + )[1], // [0] is an description for class Foo + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'bar.Foo', + scope: 'instance' + }); + + expect( + pick( + evaluate(` + /** @memberof bar */ + interface Foo { + /** */ + baz(): string; + } + `)[1], // [0] is an description for class Foo + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'bar.Foo', + scope: 'instance' + }); + + expect( + pick( + evaluate( + ` + /** @memberof bar */ + interface Foo { + /** */ + baz(): string; + } + `, + 'test.ts' + )[1], // [0] is an description for class Foo + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'bar.Foo', + scope: 'instance' + }); + + expect( + pick( + evaluate(` + interface Foo { + bar: { + /** */ + baz: string; + } + } + `)[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo.bar', + scope: 'instance' + }); + + expect( + pick( + evaluate( + ` + interface Foo { + bar: { + /** */ + baz: string; + } + } + `, + 'test.ts' + )[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo.bar', + scope: 'instance' + }); + + expect( + pick( + evaluate(` + type Foo = { + /** */ + bar: string; + } + `)[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo', + scope: 'static' + }); + + expect( + pick( + evaluate(` + type Foo = { + bar: { + /** */ + baz: string; + } + } + `)[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo.bar', + scope: 'static' + }); + + expect( + pick( + evaluate( + ` + type Foo = { + /** */ + bar: string; + } + `, + 'test.ts' + )[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo', + scope: 'static' + }); + + expect( + pick( + evaluate( + ` + type Foo = { + bar: { + /** */ + baz: string; + } + } + `, + 'test.ts' + )[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo.bar', + scope: 'static' + }); + + expect( + pick( + evaluate( + ` + enum Foo { + /** */ + A + } + `, + 'test.ts' + )[0], + ['memberof', 'scope'] + ) + ).toEqual({ + memberof: 'Foo', + scope: 'static' + }); + + expect( + pick( + evaluate(function () { /** Test */ - module.exports = function() {}; + module.exports = function () {}; })[0], ['memberof', 'scope'] ) @@ -323,7 +520,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { lend( /** @lends Foo */ { /** Test */ @@ -340,11 +537,11 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { lend( /** @lends Foo */ { /** Test */ - bar: function() {} + bar: function () {} } ); })[0], @@ -357,7 +554,7 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { lend( /** @lends Foo.prototype */ { /** Test */ @@ -374,11 +571,11 @@ test('inferMembership - explicit', function() { expect( pick( - evaluate(function() { + evaluate(function () { lend( /** @lends Foo.prototype */ { /** Test */ - bar: function() {} + bar: function () {} } ); })[0], @@ -404,16 +601,16 @@ test('inferMembership - explicit', function() { // }, 'inferMembership - revealing, static, function'); expect( - evaluate(function() { + evaluate(function () { lend(/** @lends Foo */ {}); /** Test */ })[0].memberof ).toBe(undefined); }); -test('inferMembership - exports', function() { +test('inferMembership - exports', function () { expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** foo */ exports.foo = 1; @@ -421,15 +618,15 @@ test('inferMembership - exports', function() { ).toBe('mod'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** foo */ - exports.foo = function() {}; + exports.foo = function () {}; })[1].memberof ).toBe('mod'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** bar */ exports.foo.bar = 1; @@ -437,7 +634,7 @@ test('inferMembership - exports', function() { ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ exports.foo = { /** bar */ @@ -447,7 +644,7 @@ test('inferMembership - exports', function() { ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ exports.foo = { /** bar */ @@ -457,15 +654,15 @@ test('inferMembership - exports', function() { ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** bar */ - exports.foo.prototype.bar = function() {}; + exports.foo.prototype.bar = function () {}; })[1].memberof ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ exports.foo.prototype = { /** bar */ @@ -475,9 +672,9 @@ test('inferMembership - exports', function() { ).toBe('mod.foo'); }); -test('inferMembership - module.exports', function() { +test('inferMembership - module.exports', function () { expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** foo */ module.exports.foo = 1; @@ -485,15 +682,15 @@ test('inferMembership - module.exports', function() { ).toBe('mod'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** foo */ - module.exports.foo = function() {}; + module.exports.foo = function () {}; })[1].memberof ).toBe('mod'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** bar */ module.exports.foo.bar = 1; @@ -501,7 +698,7 @@ test('inferMembership - module.exports', function() { ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ module.exports.foo = { /** bar */ @@ -511,7 +708,7 @@ test('inferMembership - module.exports', function() { ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ module.exports.foo = { /** bar */ @@ -521,15 +718,15 @@ test('inferMembership - module.exports', function() { ).toBe('mod.foo'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ /** bar */ - module.exports.prototype.bar = function() {}; + module.exports.prototype.bar = function () {}; })[1].memberof ).toBe('mod'); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ module.exports.prototype = { /** bar */ @@ -539,7 +736,7 @@ test('inferMembership - module.exports', function() { ).toBe('mod'); expect( - evaluate(function() { + evaluate(function () { /** * @module mod * @name exports @@ -549,17 +746,17 @@ test('inferMembership - module.exports', function() { ).toBe(undefined); expect( - evaluate(function() { + evaluate(function () { /** * @module mod * @name exports */ - module.exports = function() {}; + module.exports = function () {}; })[0].memberof ).toBe(undefined); expect( - evaluate(function() { + evaluate(function () { /** @module mod */ module.exports = { /** foo */ @@ -569,8 +766,8 @@ test('inferMembership - module.exports', function() { ).toBe('mod'); }); -test('inferMembership - not module exports', function() { - const result = evaluate(function() { +test('inferMembership - not module exports', function () { + const result = evaluate(function () { /** * @module mod */ @@ -582,8 +779,8 @@ test('inferMembership - not module exports', function() { expect(result[0].memberof).not.toBe('mod'); }); -test('inferMembership - anonymous @module', function() { - const result = evaluate(function() { +test('inferMembership - anonymous @module', function () { + const result = evaluate(function () { /** * @module */ @@ -595,8 +792,8 @@ test('inferMembership - anonymous @module', function() { expect(result[1].memberof).toBe('mod'); }); -test('inferMembership - no @module', function() { - const result = evaluate(function() { +test('inferMembership - no @module', function () { + const result = evaluate(function () { /** Test */ exports.foo = 1; }, '/path/mod.js'); @@ -605,10 +802,10 @@ test('inferMembership - no @module', function() { expect(result[0].memberof).toBe('mod'); }); -test('inferMembership - https://github.com/documentationjs/documentation/issues/378', function() { +test('inferMembership - https://github.com/documentationjs/documentation/issues/378', function () { expect( pick( - evaluate(function() { + evaluate(function () { Foo.prototype = { /** Test */ bar() { @@ -625,7 +822,7 @@ test('inferMembership - https://github.com/documentationjs/documentation/issues/ }); }); -test('inferMembership - export', function() { +test('inferMembership - export', function () { expect( pick( evaluate( diff --git a/__tests__/lib/infer/name.js b/__tests__/lib/infer/name.js index 0c91f4442..f1c5dac37 100644 --- a/__tests__/lib/infer/name.js +++ b/__tests__/lib/infer/name.js @@ -1,5 +1,5 @@ -const parse = require('../../../src/parsers/javascript'); -const inferName = require('../../../src/infer/name'); +import parse from '../../../src/parsers/javascript.js'; +import inferName from '../../../src/infer/name.js'; function toComment(fn, file) { return parse( @@ -15,9 +15,9 @@ function evaluate(fn, file) { return inferName(toComment(fn, file)); } -test('inferName', function() { +test('inferName', function () { expect( - evaluate(function() { + evaluate(function () { // ExpressionStatement (comment attached here) // AssignmentExpression // MemberExpression @@ -28,18 +28,18 @@ test('inferName', function() { ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { // ExpressionStatement // AssignmentExpression // MemberExpression (comment attached here) // FunctionExpression /** Test */ - exports.name = function() {}; + exports.name = function () {}; }).name ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { exports = { // Property (comment attached here) // Identifier @@ -51,7 +51,7 @@ test('inferName', function() { ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { exports = { // Property // Identifier (comment attached here) @@ -63,7 +63,7 @@ test('inferName', function() { ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { exports = { // Property // Identifier (comment attached here) @@ -75,98 +75,98 @@ test('inferName', function() { ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { /** Test */ function name() {} }).name ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { /** Test */ - const name = function() {}; + const name = function () {}; }).name ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { /** Test */ const name = function name2() {}; }).name ).toBe('name'); expect( - evaluate(function() { + evaluate(function () { /** @name explicitName */ function implicitName() {} }).name ).toBe('explicitName'); expect( - evaluate(function() { + evaluate(function () { /** @alias explicitAlias */ function implicitName() {} }).name ).toBe('explicitAlias'); expect( - evaluate(function() { + evaluate(function () { /** @class ExplicitClass */ function ImplicitClass() {} }).name ).toBe('ExplicitClass'); expect( - evaluate(function() { + evaluate(function () { /** @class */ function ImplicitClass() {} }).name ).toBe('ImplicitClass'); expect( - evaluate(function() { + evaluate(function () { /** @event explicitEvent */ function implicitName() {} }).name ).toBe('explicitEvent'); expect( - evaluate(function() { + evaluate(function () { /** @typedef {Object} ExplicitTypedef */ function implicitName() {} }).name ).toBe('ExplicitTypedef'); expect( - evaluate(function() { + evaluate(function () { /** @callback explicitCallback */ function implicitName() {} }).name ).toBe('explicitCallback'); expect( - evaluate(function() { + evaluate(function () { /** @module explicitModule */ function implicitName() {} }).name ).toBe('explicitModule'); expect( - evaluate(function() { + evaluate(function () { /** @module {Function} explicitModule */ function implicitName() {} }).name ).toBe('explicitModule'); expect( - evaluate(function() { + evaluate(function () { /** @module */ function implicitName() {} }, '/path/inferred-from-file.js').name ).toBe('inferred-from-file'); expect( - evaluate(function() { + evaluate(function () { /** @module */ }, '/path/inferred-from-file.js').name ).toBe('inferred-from-file'); @@ -193,6 +193,14 @@ test('inferName', function() { expect(evaluate('/** Test */ export class Wizard {}').name).toBe('Wizard'); + expect(evaluate('/** Test */ interface Wizard {}').name).toBe('Wizard'); + expect(evaluate('/** Test */ interface Wizard {}', 'test.ts').name).toBe( + 'Wizard' + ); + + expect(evaluate('/** Test */ enum Wizard {}', 'test.ts').name).toBe('Wizard'); + expect(evaluate('enum Wizard { /** Test */ A }', 'test.ts').name).toBe('A'); + expect( evaluate( '/** Test */ export default class Warlock {}', diff --git a/__tests__/lib/infer/params.js b/__tests__/lib/infer/params.js index 7647e8d3f..80943dc84 100644 --- a/__tests__/lib/infer/params.js +++ b/__tests__/lib/infer/params.js @@ -1,5 +1,5 @@ -const parse = require('../../../src/parsers/javascript'); -const inferParams = require('../../../src/infer/params'); +import parse from '../../../src/parsers/javascript'; +import inferParams, { mergeTrees } from '../../../src/infer/params'; function toComment(fn, file) { return parse( @@ -15,9 +15,9 @@ function evaluate(fn, file) { return inferParams(toComment(fn, file)); } -test('mergeTrees', function() { +test('mergeTrees', function () { expect( - inferParams.mergeTrees( + mergeTrees( [], [ { @@ -34,7 +34,7 @@ test('mergeTrees', function() { ).toMatchSnapshot(); expect( - inferParams.mergeTrees( + mergeTrees( [ { title: 'param', @@ -74,18 +74,18 @@ test('mergeTrees', function() { ).toMatchSnapshot(); }); -test('inferParams', function() { +test('inferParams', function () { expect( - evaluate(function() { + evaluate(function () { /** Test */ function f(x) {} }).params ).toEqual([{ lineNumber: 3, name: 'x', title: 'param' }]); expect( - evaluate(function() { + evaluate(function () { /** Test */ - const f = function(x) {}; + const f = function (x) {}; }).params ).toEqual([{ lineNumber: 3, name: 'x', title: 'param' }]); @@ -114,13 +114,13 @@ test('inferParams', function() { ]); expect( - evaluate(function() { + evaluate(function () { const x = 1; - const g = function(y) {}; + const g = function (y) {}; /** Test */ - const f = function(x) {}; + const f = function (x) {}; }).params - ).toEqual([{ lineNumber: 8, name: 'x', title: 'param' }]); + ).toEqual([{ lineNumber: 5, name: 'x', title: 'param' }]); expect( evaluate( @@ -169,7 +169,7 @@ test('inferParams', function() { ).toEqual([{ lineNumber: 1, name: 'x', title: 'param' }]); expect( - evaluate(function() { + evaluate(function () { /** * @class * @hideconstructor @@ -191,4 +191,103 @@ test('inferParams', function() { } `).params ).toEqual([]); + + expect( + evaluate( + ` + /** Test + * @param x + */ + function f(x: number = 4) {} + ` + ).params + ).toMatchSnapshot(); + + expect( + evaluate(`interface Foo { /** b */ b(v: string): void; }`).params + ).toMatchSnapshot(); + + expect( + evaluate(`type Foo = { /** b */ b(v: string): void }`).params + ).toMatchSnapshot(); + + expect( + evaluate(`interface Foo { /** b */ b(...v: string): void; }`).params + ).toMatchSnapshot(); +}); + +test('inferParams (typescript)', function () { + expect( + evaluate(`/** Test */function f(a: string) {};`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate(`/** Test */function f([a: string, b, {c}]) {};`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate( + ` + /** Test + * @param x + */ + function f(x: number = 4) {} + `, + 'test.ts' + ).params + ).toMatchSnapshot(); + + expect( + evaluate( + ` + /** Test */ + function f(opts: { x: string }) {} + `, + 'test.ts' + ).params + ).toMatchSnapshot(); + + expect( + evaluate( + ` + /** Test */ + function f(opts: { [foo]: string }) {} + `, + 'test.ts' + ).params + ).toMatchSnapshot(); + + expect( + evaluate(`/** Test */function f(...a: string) {};`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate(`/** Test */function f(a?: string) {};`).params + ).toMatchSnapshot(); + + expect( + evaluate(`/** Test */function f(a?: string) {};`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate(`/** Test */function f(a?: string);`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate(`abstract class Foo { /** */ abstract f(a?: string); }`, 'test.ts') + .params + ).toMatchSnapshot(); + + expect( + evaluate(`interface Foo { /** b */ b(v: string): void; }`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate(`type Foo = { /** b */ b(v: string): void }`, 'test.ts').params + ).toMatchSnapshot(); + + expect( + evaluate(`interface Foo { /** b */ b(...v: string): void; }`, 'test.ts') + .params + ).toMatchSnapshot(); }); diff --git a/__tests__/lib/infer/properties.js b/__tests__/lib/infer/properties.js index cb4a98e57..50647f3a8 100644 --- a/__tests__/lib/infer/properties.js +++ b/__tests__/lib/infer/properties.js @@ -1,6 +1,6 @@ /*eslint-disable no-unused-vars*/ -const inferProperties = require('../../../src/infer/properties'); -const parse = require('../../../src/parsers/javascript'); +import inferProperties from '../../../src/infer/properties'; +import parse from '../../../src/parsers/javascript'; function toComment(fn, filename) { return parse( @@ -12,11 +12,11 @@ function toComment(fn, filename) { )[0]; } -function evaluate(code) { - return inferProperties(toComment(code)); +function evaluate(code, filename) { + return inferProperties(toComment(code, filename)); } -test('inferProperties', function() { +test('inferProperties (flow)', function () { expect(evaluate('/** */type a = { b: 1 };').properties).toEqual([ { lineNumber: 1, @@ -43,9 +43,30 @@ test('inferProperties', function() { } ]); - expect( - evaluate('/** */interface a { b: 1, c: { d: 2 } };').properties - ).toEqual([ + expect(evaluate('/** */type a = { b: { c: 2 } };').properties).toEqual([ + { + lineNumber: 1, + name: 'b', + title: 'property', + type: { + type: 'RecordType', + fields: [ + { + key: 'c', + type: 'FieldType', + value: { + type: 'NumericLiteralType', + value: 2 + } + } + ] + } + } + ]); +}); + +test('inferProperties (typescript)', function () { + expect(evaluate('/** */type a = { b: 1 };', 'test.ts').properties).toEqual([ { lineNumber: 1, name: 'b', @@ -54,32 +75,43 @@ test('inferProperties', function() { type: 'NumericLiteralType', value: 1 } - }, + } + ]); + + expect( + evaluate('/** @property {number} b */ type a = { b: 1 };', 'test.ts') + .properties + ).toEqual([ + { + lineNumber: 0, + name: 'b', + title: 'property', + type: { + name: 'number', + type: 'NameExpression' + } + } + ]); + + expect( + evaluate('/** */type a = { b: { c: 2 } };', 'test.ts').properties + ).toEqual([ { lineNumber: 1, - name: 'c', + name: 'b', title: 'property', type: { + type: 'RecordType', fields: [ { - key: 'd', + key: 'c', type: 'FieldType', value: { type: 'NumericLiteralType', value: 2 } } - ], - type: 'RecordType' - } - }, - { - lineNumber: 1, - name: 'c.d', - title: 'property', - type: { - type: 'NumericLiteralType', - value: 2 + ] } } ]); diff --git a/__tests__/lib/infer/return.js b/__tests__/lib/infer/return.js index 979d640b0..c9cc9681b 100644 --- a/__tests__/lib/infer/return.js +++ b/__tests__/lib/infer/return.js @@ -1,6 +1,6 @@ /*eslint-disable no-unused-vars*/ -const inferReturn = require('../../../src/infer/return'); -const parse = require('../../../src/parsers/javascript'); +import inferReturn from '../../../src/infer/return'; +import parse from '../../../src/parsers/javascript'; function toComment(fn, filename) { return parse( @@ -12,11 +12,11 @@ function toComment(fn, filename) { )[0]; } -function evaluate(code) { - return inferReturn(toComment(code)); +function evaluate(code, filename) { + return inferReturn(toComment(code, filename)); } -test('inferReturn', function() { +test('inferReturn (flow)', function () { expect(evaluate('/** */function a(): number {}').returns).toEqual([ { title: 'returns', @@ -41,4 +41,130 @@ test('inferReturn', function() { name: 'string', type: 'NameExpression' }); + const generatorFn = evaluate( + '/** */function *a(): Generator {}' + ); + expect(generatorFn.generator).toBe(true); + expect(generatorFn.yields).toEqual([ + { + title: 'yields', + type: { + name: 'Foo', + type: 'NameExpression' + } + } + ]); + expect(generatorFn.returns).toEqual([ + { + title: 'returns', + type: { + name: 'Bar', + type: 'NameExpression' + } + } + ]); + + expect( + evaluate('interface Foo { /** */ bar(): string; }').returns[0].type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect( + evaluate('type Foo = { /** */ bar(): string; }').returns[0].type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); +}); + +test('inferReturn (typescript)', function () { + expect(evaluate('/** */function a(): number {}', 'test.ts').returns).toEqual([ + { + title: 'returns', + type: { + name: 'number', + type: 'NameExpression' + } + } + ]); + expect( + evaluate('/** */var a = function(): number {}', 'test.ts').returns + ).toEqual([ + { + title: 'returns', + type: { + name: 'number', + type: 'NameExpression' + } + } + ]); + expect( + evaluate('/** @returns {string} */function a(): number {}', 'test.ts') + .returns[0].type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + const generatorFn = evaluate( + '/** */function *a(): IterableIterator {}', + 'test.ts' + ); + expect(generatorFn.generator).toBe(true); + expect(generatorFn.yields).toEqual([ + { + title: 'yields', + type: { + name: 'Foo', + type: 'NameExpression' + } + } + ]); + expect(generatorFn.returns).toEqual([ + { + title: 'returns', + type: { + type: 'VoidLiteral' + } + } + ]); + + expect(evaluate('/** */function a(): number;', 'test.ts').returns).toEqual([ + { + title: 'returns', + type: { + name: 'number', + type: 'NameExpression' + } + } + ]); + + expect( + evaluate('abstract class Test { /** */abstract a(): number; }', 'test.ts') + .returns + ).toEqual([ + { + title: 'returns', + type: { + name: 'number', + type: 'NameExpression' + } + } + ]); + + expect( + evaluate('interface Foo { /** */ bar(): string; }', 'test.ts').returns[0] + .type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect( + evaluate('type Foo = { /** */ bar(): string; }', 'test.ts').returns[0].type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); }); diff --git a/__tests__/lib/infer/type.js b/__tests__/lib/infer/type.js index f95ad8af9..b3d4f975d 100644 --- a/__tests__/lib/infer/type.js +++ b/__tests__/lib/infer/type.js @@ -1,21 +1,22 @@ -const parse = require('../../../src/parsers/javascript'); -const inferKind = require('../../../src/infer/kind'); -const inferType = require('../../../src/infer/type'); +import parse from '../../../src/parsers/javascript'; +import inferKind from '../../../src/infer/kind'; +import inferType from '../../../src/infer/type'; -function toComment(code) { +function toComment(fn, filename) { return parse( { - source: code + file: filename, + source: fn instanceof Function ? '(' + fn.toString() + ')' : fn }, {} )[0]; } -function evaluate(code) { - return inferType(inferKind(toComment(code))); +function evaluate(code, filename) { + return inferType(inferKind(toComment(code, filename))); } -test('inferType', function() { +test('inferType (flow)', function () { expect(evaluate('/** @typedef {T} V */').type).toEqual({ name: 'T', type: 'NameExpression' @@ -40,28 +41,6 @@ test('inferType', function() { type: 'TypeApplication' }); - expect(evaluate('/** */' + "type V = {a:number,'b':string}").type).toEqual({ - fields: [ - { - key: 'a', - type: 'FieldType', - value: { - name: 'number', - type: 'NameExpression' - } - }, - { - key: 'b', - type: 'FieldType', - value: { - name: 'string', - type: 'NameExpression' - } - } - ], - type: 'RecordType' - }); - expect(evaluate('/** */' + 'type V = Array').type).toEqual({ applications: [ { @@ -101,6 +80,16 @@ test('inferType', function() { type: 'NameExpression' }); + expect(evaluate('class Foo { /** */ get b(): string { } }').type).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect(evaluate('class Foo { /** */ set b(s: string) { } }').type).toEqual({ + name: 'string', + type: 'NameExpression' + }); + expect(evaluate('/** */' + 'const x = 42;').type).toEqual({ name: 'number', type: 'NameExpression' @@ -115,4 +104,163 @@ test('inferType', function() { name: 'boolean', type: 'NameExpression' }); + + expect(evaluate('interface Foo { /** */ bar: string; }').type).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect(evaluate('type Foo = { /** */ bar: string; }').type).toEqual({ + name: 'string', + type: 'NameExpression' + }); +}); + +test('inferType (typescript)', function () { + expect(evaluate('/** @typedef {T} V */', 'test.ts').type).toEqual({ + name: 'T', + type: 'NameExpression' + }); + + expect(evaluate('/** */' + 'type V = T', 'test.ts').type).toEqual({ + name: 'T', + type: 'NameExpression' + }); + + expect(evaluate('/** @typedef {Array} V */', 'test.ts').type).toEqual({ + applications: [ + { + name: 'T', + type: 'NameExpression' + } + ], + expression: { + name: 'Array', + type: 'NameExpression' + }, + type: 'TypeApplication' + }); + + expect(evaluate('/** */' + 'type V = Array', 'test.ts').type).toEqual({ + applications: [ + { + name: 'T', + type: 'NameExpression' + } + ], + expression: { + name: 'Array', + type: 'NameExpression' + }, + type: 'TypeApplication' + }); + + expect(evaluate('/** */' + 'var x: number', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect(evaluate('/** */' + 'let x: number', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect(evaluate('/** */' + 'const x: number = 42;', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect(evaluate('let x,' + '/** */' + 'y: number', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect( + evaluate('class C {' + '/** */' + 'x: number;' + '}', 'test.ts').type + ).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect( + evaluate('class Foo { /** */ get b(): string { } }', 'test.ts').type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect( + evaluate('class Foo { /** */ set b(s: string) { } }', 'test.ts').type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect( + evaluate( + 'abstract class Foo { /** */ abstract get b(): string; }', + 'test.ts' + ).type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect( + evaluate( + 'abstract class Foo { /** */ abstract set b(s: string); }', + 'test.ts' + ).type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect(evaluate('/** */' + 'const x = 42;', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect(evaluate('/** */' + 'const x = "abc";', 'test.ts').type).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect(evaluate('/** */' + 'const x = true;', 'test.ts').type).toEqual({ + name: 'boolean', + type: 'NameExpression' + }); + + expect( + evaluate('interface Foo { /** */ bar: string; }', 'test.ts').type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect( + evaluate('type Foo = { /** */ bar: string; }', 'test.ts').type + ).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect(evaluate('enum Foo { /** */ A }', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect(evaluate('enum Foo { /** */ A = 2 }', 'test.ts').type).toEqual({ + name: 'number', + type: 'NameExpression' + }); + + expect(evaluate('enum Foo { /** */ A = "test" }', 'test.ts').type).toEqual({ + name: 'string', + type: 'NameExpression' + }); + + expect(evaluate('enum Foo { /** */ A = foo }', 'test.ts').type).toBe( + undefined + ); }); diff --git a/__tests__/lib/input/dependency.js b/__tests__/lib/input/dependency.js index a69b65335..08439d8a9 100644 --- a/__tests__/lib/input/dependency.js +++ b/__tests__/lib/input/dependency.js @@ -1,7 +1,7 @@ -const os = require('os'); -const path = require('path'); -const fs = require('fs'); -const dependency = require('../../../src/input/dependency'); +import os from 'os'; +import path from 'path'; +import fs from 'fs'; +import dependency from '../../../src/input/dependency.js'; function inputs(contents) { const dirEntry = os.tmpdir(); @@ -15,7 +15,7 @@ function inputs(contents) { }; } -test('dependency', async function() { +test('dependency', async function () { const { paths, cleanup } = inputs({ 'index.js': 'module.exports = 1;', 'requires.js': "module.exports = require('./foo');", @@ -23,13 +23,13 @@ test('dependency', async function() { }); { const dependencies = await dependency([paths['index.js']], { - parseExtension: ['js'] + parseExtension: ['.js'] }); expect(dependencies.length).toEqual(1); } { const dependencies = await dependency([paths['requires.js']], { - parseExtension: ['js'] + parseExtension: ['.js'] }); expect(dependencies.length).toEqual(2); } diff --git a/__tests__/lib/input/shallow.js b/__tests__/lib/input/shallow.js index 430a19b8c..a559812fd 100644 --- a/__tests__/lib/input/shallow.js +++ b/__tests__/lib/input/shallow.js @@ -1,7 +1,11 @@ -const path = require('path'); -const shallow = require('../../../src/input/shallow'); +import path from 'path'; +import shallow from '../../../src/input/shallow.js'; +import { fileURLToPath } from 'url'; -test('shallow deps', async function() { +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +test('shallow deps', async function () { const deps = await shallow( [path.resolve(path.join(__dirname, '../../fixture/es6.input.js'))], {} @@ -10,7 +14,7 @@ test('shallow deps', async function() { expect(deps[0]).toBeTruthy(); }); -test('shallow deps multi', async function() { +test('shallow deps multi', async function () { const deps = await shallow( [ path.resolve(path.join(__dirname, '../../fixture/es6.input.js')), @@ -22,7 +26,7 @@ test('shallow deps multi', async function() { expect(deps[0]).toBeTruthy(); }); -test('shallow deps directory', async function() { +test('shallow deps directory', async function () { const deps = await shallow( [path.resolve(path.join(__dirname, '../../fixture/html'))], {} @@ -31,13 +35,7 @@ test('shallow deps directory', async function() { expect(deps[0].file.match(/input.js/)).toBeTruthy(); }); -test('throws on non-string or object input', function() { - return shallow([true], {}).catch(err => { - expect(err.message).toBe('Indexes should be either strings or objects'); - }); -}); - -test('shallow deps literal', async function() { +test('shallow deps literal', async function () { const obj = { file: 'foo.js', source: '//bar' diff --git a/__tests__/lib/lint.js b/__tests__/lib/lint.js index 6ec6bd386..7a8dc49be 100644 --- a/__tests__/lib/lint.js +++ b/__tests__/lib/lint.js @@ -1,6 +1,5 @@ -const parse = require('../../src/parsers/javascript'); -const lintComments = require('../../src/lint').lintComments; -const formatLint = require('../../src/lint').formatLint; +import parse from '../../src/parsers/javascript.js'; +import { lintComments, formatLint } from '../../src/lint.js'; function toComment(fn, filename) { return parse( @@ -16,9 +15,9 @@ function evaluate(fn) { return lintComments(toComment(fn, 'input.js')); } -test('lintComments', function() { +test('lintComments', function () { expect( - evaluate(function() { + evaluate(function () { /** * @param {foo */ @@ -29,7 +28,7 @@ test('lintComments', function() { ]); expect( - evaluate(function() { + evaluate(function () { /** * @param {Object} foo.bar */ @@ -37,7 +36,7 @@ test('lintComments', function() { ).toEqual([{ commentLineNumber: 1, message: 'Parent of foo.bar not found' }]); expect( - evaluate(function() { + evaluate(function () { /** * @param {String} foo * @param {array} bar @@ -52,7 +51,7 @@ test('lintComments', function() { ]); expect( - evaluate(function() { + evaluate(function () { /** * @param {string} foo */ @@ -60,8 +59,8 @@ test('lintComments', function() { ).toEqual([]); }); -test('formatLint', function() { - const comment = evaluate(function() { +test('formatLint', function () { + const comment = evaluate(function () { // 2 // 3 /** 4 diff --git a/__tests__/lib/merge_config.js b/__tests__/lib/merge_config.js index 5c087702b..0a6e76398 100644 --- a/__tests__/lib/merge_config.js +++ b/__tests__/lib/merge_config.js @@ -1,42 +1,50 @@ -const path = require('path'); -const _ = require('lodash'); -const mergeConfig = require('../../src/merge_config'); +import path from 'path'; +import config from '../../src/config.js'; +import mergeConfig from '../../src/merge_config.js'; +import { fileURLToPath } from 'url'; -test('bad config', async function() { - try { - await mergeConfig({ config: 'DOES-NOT-EXIST' }); - } catch (err) { - expect(err).toBeTruthy(); - } -}); +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); -test('right merging package configuration', async function() { - // Omit configuration from output, for simplicity - const nc = _.curryRight(_.omit, 2)([ - 'config', - 'no-package', - 'parseExtension', - 'project-homepage', - 'project-version', - 'project-description' - ]); - return mergeConfig({ - config: path.join(__dirname, '../config_fixture/config.json'), - 'no-package': true, - 'project-name': 'cool Documentation' - }) - .then(nc) - .then(res => { - expect(res).toEqual({ - 'project-name': 'cool Documentation', - foo: 'bar' - }); +describe('single config tests', function () { + beforeEach(function () { + config.reset(); + }); + + test('Should be failed on bad config', async function () { + try { + await mergeConfig({ config: 'DOES-NOT-EXIST' }); + } catch (err) { + expect(err).toBeTruthy(); + return; + } + return Promise.reject(new Error('should be failed on bad config')); + }); + + test('right merging package configuration', async function () { + const list = [ + 'config', + 'no-package', + 'parseExtension', + 'project-homepage', + 'project-version', + 'project-description' + ]; + await mergeConfig({ + config: path.join(__dirname, '../config_fixture/config.json'), + 'no-package': true, + 'project-name': 'cool Documentation' }); -}); -test('nc(mergeConfig)', async function() { - // Omit configuration from output, for simplicity - const nc = _.curryRight(_.omit, 2)([ + const res = config.globalConfig; + list.forEach(key => delete res[key]); + expect(res).toEqual({ + 'project-name': 'cool Documentation', + foo: 'bar' + }); + }); + + const list = [ 'config', 'no-package', 'parseExtension', @@ -44,60 +52,61 @@ test('nc(mergeConfig)', async function() { 'project-name', 'project-version', 'project-description' - ]); + ]; - return Promise.all( + [ + [ + { config: path.join(__dirname, '../config_fixture/config.json') }, + { foo: 'bar' } + ], + [ + { + passThrough: true, + config: path.join(__dirname, '../config_fixture/config.json') + }, + { foo: 'bar', passThrough: true } + ], + [ + { + config: path.join(__dirname, '../config_fixture/config_comments.json') + }, + { foo: 'bar' } + ], [ - [ - { config: path.join(__dirname, '../config_fixture/config.json') }, - { foo: 'bar' } - ], - [ - { - passThrough: true, - config: path.join(__dirname, '../config_fixture/config.json') - }, - { foo: 'bar', passThrough: true } - ], - [ - { - config: path.join(__dirname, '../config_fixture/config_comments.json') - }, - { foo: 'bar' } - ], - [ - { config: path.join(__dirname, '../config_fixture/config.yaml') }, - { foo: 'bar' } - ], - [ - { config: path.join(__dirname, '../config_fixture/config.yml') }, - { foo: 'bar' } - ], - [ - { config: path.join(__dirname, '../config_fixture/config') }, - { foo: 'bar' } - ], - [ - { config: path.join(__dirname, '../config_fixture/config_links.yml') }, - { foo: 'hello [link](https://github.com/my/link) world' } - ], - [ - { config: path.join(__dirname, '../config_fixture/config_file.yml') }, - { - toc: [ - { - name: 'snowflake', - file: path.join(__dirname, '../fixture/snowflake.md') - } - ] - } - ] - ].map(pair => - mergeConfig(Object.assign(pair[0], { 'no-package': true })) - .then(nc) - .then(res => { - expect(res).toEqual(pair[1]); - }) - ) - ); + { config: path.join(__dirname, '../config_fixture/config.yaml') }, + { foo: 'bar' } + ], + [ + { config: path.join(__dirname, '../config_fixture/config.yml') }, + { foo: 'bar' } + ], + [ + { config: path.join(__dirname, '../config_fixture/config') }, + { foo: 'bar' } + ], + [ + { + config: path.join(__dirname, '../config_fixture/config_links.yml') + }, + { foo: 'hello [link](https://github.com/my/link) world' } + ], + [ + { config: path.join(__dirname, '../config_fixture/config_file.yml') }, + { + toc: [ + { + name: 'snowflake', + file: path.join(__dirname, '../fixture/snowflake.md') + } + ] + } + ] + ].forEach((pair, index) => { + test(`nc(mergeConfig) ${index}`, async function () { + await mergeConfig(Object.assign(pair[0], { 'no-package': true })); + const res = config.globalConfig; + list.forEach(key => delete res[key]); + expect(res).toEqual(pair[1]); + }); + }); }); diff --git a/__tests__/lib/module_filters.js b/__tests__/lib/module_filters.js index cda60c7dc..1df0a6e2b 100644 --- a/__tests__/lib/module_filters.js +++ b/__tests__/lib/module_filters.js @@ -1,13 +1,6 @@ -const moduleFilters = require('../../src/module_filters'); +import internalOnly from '../../src/module_filters.js'; -test('moduleFilters.internalOnly', function() { - expect(moduleFilters.internalOnly('./foo')).toEqual(true); - expect(moduleFilters.internalOnly('foo')).toEqual(false); -}); - -test('moduleFilters.externals', function() { - expect(moduleFilters.externals([], {})('./foo')).toEqual(true); - expect( - moduleFilters.externals([], { external: 'node_modules' })('./foo') - ).toEqual(true); +test('moduleFilters.internalOnly', function () { + expect(internalOnly('./foo')).toEqual(true); + expect(internalOnly('foo')).toEqual(false); }); diff --git a/__tests__/lib/nest.js b/__tests__/lib/nest.js index d73d92815..71012fb6d 100644 --- a/__tests__/lib/nest.js +++ b/__tests__/lib/nest.js @@ -1,4 +1,4 @@ -const nestTag = require('../../src/nest').nestTag; +import { nestTag } from '../../src/nest.js'; // Print a tree of tags in a way that's easy to test. const printTree = indent => node => @@ -9,7 +9,7 @@ const printTree = indent => node => const printNesting = params => printTree(0)({ properties: nestTag(params), name: 'root' }); -test('nest params - basic', function() { +test('nest params - basic', function () { const params = [ 'foo', 'foo.bar', @@ -27,7 +27,7 @@ test('nest params - basic', function() { ); }); -test('nest params - multiple roots', function() { +test('nest params - multiple roots', function () { const params = ['a', 'b', 'c'].map(name => ({ name })); expect(printNesting(params)).toBe( `- root @@ -37,14 +37,14 @@ test('nest params - multiple roots', function() { ); }); -test('nest params - missing parent', function() { +test('nest params - missing parent', function () { const params = ['foo', 'foo.bar.third'].map(name => ({ name })); expect(() => { nestTag(params); }).toThrow(); }); -test('nest params - #658', function() { +test('nest params - #658', function () { const params = [ 'state', 'payload', @@ -68,7 +68,7 @@ test('nest params - #658', function() { ); }); -test('nest params - #554', function() { +test('nest params - #554', function () { const params = [ 'x', 'yIn', diff --git a/__tests__/lib/output/util/formatters.js b/__tests__/lib/output/util/formatters.js index e2dd2c1dc..9c5b3fa01 100644 --- a/__tests__/lib/output/util/formatters.js +++ b/__tests__/lib/output/util/formatters.js @@ -1,6 +1,7 @@ -const formatters = require('../../../../src/output/util/formatters')(getHref); +import fromat from '../../../../src/output/util/formatters.js'; +const formatters = fromat(getHref); -test('formatters.parameters -- long form', function() { +test('formatters.parameters -- long form', function () { expect(formatters.parameters({})).toEqual('()'); expect(formatters.parameters({ params: [] })).toEqual('()'); expect(formatters.parameters({ params: [{ name: 'foo' }] })).toEqual( @@ -13,7 +14,7 @@ test('formatters.parameters -- long form', function() { ).toEqual('(foo: any?)'); }); -test('formatters.parameters -- short form', function() { +test('formatters.parameters -- short form', function () { expect(formatters.parameters({}, true)).toEqual('()'); expect(formatters.parameters({ params: [] }, true)).toEqual('()'); expect(formatters.parameters({ params: [{ name: 'foo' }] }, true)).toEqual( diff --git a/__tests__/lib/parse.js b/__tests__/lib/parse.js index 6853ba364..6d57ed900 100644 --- a/__tests__/lib/parse.js +++ b/__tests__/lib/parse.js @@ -1,10 +1,12 @@ -const parse = require('../../src/parsers/javascript'); -const remark = require('remark'); -const visit = require('unist-util-visit'); +import parse from '../../src/parsers/javascript.js'; +import removePosition from '../../src/remark-remove-position.js'; +import { remark } from 'remark'; +const remarkParse = remark().use(removePosition).parse; +import { visit } from 'unist-util-visit'; function pick(obj, props) { if (Array.isArray(props)) { - return props.reduce(function(memo, prop) { + return props.reduce(function (memo, prop) { if (obj[prop] !== undefined) { memo[prop] = obj[prop]; } @@ -25,71 +27,72 @@ function evaluate(fn, filename) { } function addJSDocTag(tree) { - visit(tree, 'link', function(node) { + visit(tree, 'link', function (node) { node.jsdoc = true; }); return tree; } -function removePosition(tree) { - visit(tree, function(node) { - delete node.position; - }); - return tree; -} - -test('parse - @abstract', function() { +test('parse - @abstract', function () { expect( - evaluate(function() { + evaluate(function () { /** @abstract */ })[0].abstract ).toBe(true); }); -test('parse - @access', function() { +test('parse - @access', function () { expect( - evaluate(function() { + evaluate(function () { /** @access public */ })[0].access ).toBe('public'); expect( - evaluate(function() { + evaluate(function () { /** @access protected */ })[0].access ).toBe('protected'); expect( - evaluate(function() { + evaluate(function () { /** @access private */ })[0].access ).toBe('private'); }); -test('parse - @alias', function() {}); +test('parse - @alias', function () {}); + +test('parse - @arg', function () {}); -test('parse - @arg', function() {}); +test('parse - @argument', function () {}); -test('parse - @argument', function() {}); +test('parse - @async', function () { + expect( + evaluate(function () { + /** @async */ + })[0].async + ).toBe(true); +}); -test('parse - @augments', function() { +test('parse - @augments', function () { expect( - evaluate(function() { + evaluate(function () { /** @augments Foo */ })[0].augments[0].name ).toBe('Foo'); }); -test('parse - @description', function() { +test('parse - @description', function () { expect( - evaluate(function() { + evaluate(function () { /** * This is a free-form description * @description This tagged description wins, and [is markdown](http://markdown.com). */ })[0].description ).toEqual( - remark().parse( + remarkParse( 'This tagged description wins, and [is markdown](http://markdown.com).' ) ); @@ -99,30 +102,30 @@ test('parse - @description', function() { * Dossier-style augments tag * https://github.com/google/closure-library/issues/746 */ -test('parse - @augments in dossier style', function() { +test('parse - @augments in dossier style', function () { expect( - evaluate(function() { + evaluate(function () { /** @augments {Foo} */ })[0].augments[0].name ).toBe('Foo'); }); -test('parse - @augments of complex passes through', function() { +test('parse - @augments of complex passes through', function () { expect( - evaluate(function() { + evaluate(function () { /** @augments {function()} */ })[0].augments ).toEqual([]); }); -test('parse - @author', function() {}); +test('parse - @author', function () {}); -test('parse - @borrows', function() {}); +test('parse - @borrows', function () {}); -test('parse - @callback', function() { +test('parse - @callback', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @callback name */ })[0], ['kind', 'name', 'type'] @@ -137,10 +140,10 @@ test('parse - @callback', function() { }); }); -test('parse - @class', function() { +test('parse - @class', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @class */ })[0], ['kind', 'name', 'type'] @@ -151,7 +154,7 @@ test('parse - @class', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @class name */ })[0], ['kind', 'name', 'type'] @@ -163,7 +166,7 @@ test('parse - @class', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @class {Object} name */ })[0], ['kind', 'name', 'type'] @@ -178,20 +181,20 @@ test('parse - @class', function() { }); }); -test('parse - @classdesc', function() { +test('parse - @classdesc', function () { expect( - evaluate(function() { + evaluate(function () { /** @classdesc test */ })[0].classdesc - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - @const', function() {}); +test('parse - @const', function () {}); -test('parse - @constant', function() { +test('parse - @constant', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @constant */ })[0], ['kind', 'name', 'type'] @@ -202,7 +205,7 @@ test('parse - @constant', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @constant name */ })[0], ['kind', 'name', 'type'] @@ -214,7 +217,7 @@ test('parse - @constant', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @constant {Object} */ })[0], ['kind', 'name', 'type'] @@ -229,7 +232,7 @@ test('parse - @constant', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @constant {Object} name */ })[0], ['kind', 'name', 'type'] @@ -244,62 +247,77 @@ test('parse - @constant', function() { }); }); -test('parse - @constructor', function() {}); +test('parse - @constructor', function () {}); -test('parse - @constructs', function() {}); +test('parse - @constructs', function () {}); -test('parse - @copyright', function() { +test('parse - @copyright', function () { expect( - evaluate(function() { + evaluate(function () { /** @copyright test */ })[0].copyright - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - @default', function() {}); +test('parse - @default', function () {}); -test('parse - @defaultvalue', function() {}); +test('parse - @defaultvalue', function () {}); -test('parse - @deprecated', function() { +test('parse - @deprecated', function () { expect( - evaluate(function() { + evaluate(function () { /** @deprecated test */ })[0].deprecated - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - @desc', function() { +test('parse - @desc', function () { expect( - evaluate(function() { + evaluate(function () { /** @desc test */ })[0].description - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - @description', function() { +test('parse - @description', function () { expect( - evaluate(function() { + evaluate(function () { /** @description test */ })[0].description - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - description', function() { +test('parse - description', function () { expect( - evaluate(function() { + evaluate(function () { /** test */ })[0].description - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - @emits', function() {}); +test('parse - @emits', function () {}); -test('parse - @enum', function() {}); +test('parse - @enum', function () { + expect( + pick( + evaluate(function () { + /** @enum {string} */ + })[0], + ['kind', 'type'] + ) + ).toEqual({ + kind: 'enum', + type: { + type: 'NameExpression', + name: 'string' + } + }); +}); -test('parse - @event', function() { +test('parse - @event', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @event name */ })[0], ['kind', 'name'] @@ -310,9 +328,9 @@ test('parse - @event', function() { }); }); -test('parse - @example', function() { +test('parse - @example', function () { expect( - evaluate(function() { + evaluate(function () { /** @example test */ })[0].examples[0] ).toEqual({ @@ -320,7 +338,7 @@ test('parse - @example', function() { }); expect( - evaluate(function() { + evaluate(function () { /** * @example * a @@ -332,7 +350,7 @@ test('parse - @example', function() { }); expect( - evaluate(function() { + evaluate(function () { /** * @example caption * a @@ -341,11 +359,11 @@ test('parse - @example', function() { })[0].examples[0] ).toEqual({ description: 'a\nb', - caption: remark().parse('caption') + caption: remarkParse('caption') }); expect( - evaluate(function() { + evaluate(function () { /** @example */ })[0].errors[0] ).toEqual({ @@ -354,22 +372,22 @@ test('parse - @example', function() { }); }); -test('parse - @exception', function() {}); +test('parse - @exception', function () {}); -test('parse - @exports', function() {}); +test('parse - @exports', function () {}); -test('parse - @extends', function() { +test('parse - @extends', function () { expect( - evaluate(function() { + evaluate(function () { /** @extends Foo */ })[0].augments[0].name ).toEqual('Foo'); }); -test('parse - @external', function() { +test('parse - @external', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @external name */ })[0], ['kind', 'name'] @@ -380,10 +398,10 @@ test('parse - @external', function() { }); }); -test('parse - @file', function() { +test('parse - @file', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @file */ })[0], ['kind'] @@ -394,27 +412,27 @@ test('parse - @file', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @file desc */ })[0], ['kind', 'description'] ) ).toEqual({ kind: 'file', - description: remark().parse('desc') + description: remarkParse('desc') }); }); -test('parse - @fileoverview', function() {}); +test('parse - @fileoverview', function () {}); -test('parse - @fires', function() {}); +test('parse - @fires', function () {}); -test('parse - @func', function() {}); +test('parse - @func', function () {}); -test('parse - @function', function() { +test('parse - @function', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @function */ })[0], ['kind', 'name'] @@ -425,7 +443,7 @@ test('parse - @function', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @function name */ })[0], ['kind', 'name'] @@ -438,96 +456,110 @@ test('parse - @function', function() { // When @function takes a name, it is acting as a shorthand for @name and // should detach from code the same way @name does. expect( - evaluate(function() { + evaluate(function () { /** @function */ function foo() {} })[0].context.ast ).toBeDefined(); expect( - evaluate(function() { + evaluate(function () { /** @function name */ function foo() {} })[0].context.ast ).toBeUndefined(); }); -test('parse - @global', function() { +test('parse - @generator', function () { expect( - evaluate(function() { + evaluate(function () { + /** @generator */ + })[0].generator + ).toBe(true); +}); + +test('parse - @global', function () { + expect( + evaluate(function () { /** @global */ })[0].scope ).toBe('global'); }); -test('parse - @hideconstructor', function() { +test('parse - @hideconstructor', function () { expect( - evaluate(function() { + evaluate(function () { /** @hideconstructor */ })[0].hideconstructor ).toBe(true); }); -test('parse - @host', function() {}); +test('parse - @host', function () {}); -test('parse - @ignore', function() { +test('parse - @ignore', function () { expect( - evaluate(function() { + evaluate(function () { /** @ignore */ })[0].ignore ).toBe(true); }); -test('parse - @implements', function() {}); +test('parse - @implements', function () { + expect( + evaluate(function () { + /** @implements {Foo} */ + })[0].implements[0].name + ).toEqual('Foo'); +}); -test('parse - @inheritdoc', function() {}); +test('parse - @inheritdoc', function () {}); -test('parse - @inner', function() { +test('parse - @inner', function () { expect( - evaluate(function() { + evaluate(function () { /** @inner*/ })[0].scope ).toBe('inner'); }); -test('parse - @instance', function() { +test('parse - @instance', function () { expect( - evaluate(function() { + evaluate(function () { /** @instance*/ })[0].scope ).toBe('instance'); }); -test('parse - @interface', function() { +test('parse - @interface', function () { expect( - evaluate(function() { + evaluate(function () { /** @interface */ - })[0].interface - ).toEqual(true); + })[0].kind + ).toEqual('interface'); expect( - evaluate(function() { + evaluate(function () { /** @interface Foo */ })[0].name ).toEqual('Foo'); }); -test('parse - @kind', function() { +test('parse - @kind', function () { expect( - evaluate(function() { + evaluate(function () { /** @kind class */ })[0].kind ).toBe('class'); }); -test('parse - @license', function() {}); +test('parse - @license', function () {}); -test('parse - @listens', function() {}); +test('parse - @listens', function () {}); -test('parse - @member', function() { +test('parse - @member', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @member */ })[0], ['kind', 'name', 'type'] @@ -538,7 +570,7 @@ test('parse - @member', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @member name */ })[0], ['kind', 'name', 'type'] @@ -550,7 +582,7 @@ test('parse - @member', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @member {Object} */ })[0], ['kind', 'name', 'type'] @@ -565,7 +597,7 @@ test('parse - @member', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @member {Object} name */ })[0], ['kind', 'name', 'type'] @@ -580,22 +612,22 @@ test('parse - @member', function() { }); }); -test('parse - @memberof', function() { +test('parse - @memberof', function () { expect( - evaluate(function() { + evaluate(function () { /** @memberof test */ })[0].memberof ).toBe('test'); }); -test('parse - @method', function() {}); +test('parse - @method', function () {}); -test('parse - @mixes', function() {}); +test('parse - @mixes', function () {}); -test('parse - @mixin', function() { +test('parse - @mixin', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @mixin */ })[0], ['kind', 'name'] @@ -606,7 +638,7 @@ test('parse - @mixin', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @mixin name */ })[0], ['kind', 'name'] @@ -617,10 +649,10 @@ test('parse - @mixin', function() { }); }); -test('parse - @module', function() { +test('parse - @module', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @module */ })[0], ['kind', 'name', 'type'] @@ -631,7 +663,7 @@ test('parse - @module', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @module name */ })[0], ['kind', 'name', 'type'] @@ -643,7 +675,7 @@ test('parse - @module', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @module {Object} name */ })[0], ['kind', 'name', 'type'] @@ -658,25 +690,25 @@ test('parse - @module', function() { }); }); -test('parse - @name', function() { +test('parse - @name', function () { expect( - evaluate(function() { + evaluate(function () { /** @name test */ })[0].name ).toBe('test'); expect( - evaluate(function() { + evaluate(function () { /** @name foo */ const bar = 0; })[0].context.ast ).toBeUndefined(); }); -test('parse - @namespace', function() { +test('parse - @namespace', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @namespace */ })[0], ['kind', 'name', 'type'] @@ -687,7 +719,7 @@ test('parse - @namespace', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @namespace name */ })[0], ['kind', 'name', 'type'] @@ -699,7 +731,7 @@ test('parse - @namespace', function() { expect( pick( - evaluate(function() { + evaluate(function () { /** @namespace {Object} name */ })[0], ['kind', 'name', 'type'] @@ -714,19 +746,19 @@ test('parse - @namespace', function() { }); }); -test('parse - @override', function() { +test('parse - @override', function () { expect( - evaluate(function() { + evaluate(function () { /** @override */ })[0].override ).toBe(true); }); -test('parse - @overview', function() {}); +test('parse - @overview', function () {}); -test('parse - @param', function() { +test('parse - @param', function () { expect( - evaluate(function() { + evaluate(function () { /** @param test */ })[0].params[0] ).toEqual({ @@ -736,7 +768,7 @@ test('parse - @param', function() { }); expect( - evaluate(function() { + evaluate(function () { /** @param {number} test */ })[0].params[0] ).toEqual({ @@ -750,7 +782,7 @@ test('parse - @param', function() { }); expect( - evaluate(function() { + evaluate(function () { /** @param {number} test - desc */ })[0].params[0] ).toEqual({ @@ -760,22 +792,22 @@ test('parse - @param', function() { name: 'number', type: 'NameExpression' }, - description: remark().parse('desc'), + description: remarkParse('desc'), lineNumber: 0 }); }); -test('parse - @private', function() { +test('parse - @private', function () { expect( - evaluate(function() { + evaluate(function () { /** @private */ })[0].access ).toBe('private'); }); -test('parse - @prop', function() { +test('parse - @prop', function () { expect( - evaluate(function() { + evaluate(function () { /** @prop {number} test */ })[0].properties[0] ).toEqual({ @@ -789,7 +821,7 @@ test('parse - @prop', function() { }); expect( - evaluate(function() { + evaluate(function () { /** @prop {number} test - desc */ })[0].properties[0] ).toEqual({ @@ -799,14 +831,14 @@ test('parse - @prop', function() { name: 'number', type: 'NameExpression' }, - description: remark().parse('desc'), + description: remarkParse('desc'), lineNumber: 0 }); }); -test('parse - @property', function() { +test('parse - @property', function () { expect( - evaluate(function() { + evaluate(function () { /** @property {number} test */ })[0].properties[0] ).toEqual({ @@ -820,7 +852,7 @@ test('parse - @property', function() { }); expect( - evaluate(function() { + evaluate(function () { /** @property {number} test - desc */ })[0].properties[0] ).toEqual({ @@ -830,47 +862,47 @@ test('parse - @property', function() { name: 'number', type: 'NameExpression' }, - description: remark().parse('desc'), + description: remarkParse('desc'), lineNumber: 0 }); }); -test('parse - @protected', function() { +test('parse - @protected', function () { expect( - evaluate(function() { + evaluate(function () { /** @protected */ })[0].access ).toBe('protected'); }); -test('parse - @public', function() {}); +test('parse - @public', function () {}); -test('parse - @readonly', function() { +test('parse - @readonly', function () { expect( - evaluate(function() { + evaluate(function () { /** @readonly */ })[0].readonly ).toBe(true); }); -test('parse - @requires', function() {}); +test('parse - @requires', function () {}); -test('parse - @return', function() { +test('parse - @return', function () { expect( - evaluate(function() { + evaluate(function () { /** @return test */ })[0].returns[0] ).toEqual({ title: 'returns', - description: remark().parse('test') + description: remarkParse('test') }); expect( - evaluate(function() { + evaluate(function () { /** @return {number} test */ })[0].returns[0] ).toEqual({ - description: remark().parse('test'), + description: remarkParse('test'), title: 'returns', type: { name: 'number', @@ -879,22 +911,22 @@ test('parse - @return', function() { }); }); -test('parse - @returns', function() { +test('parse - @returns', function () { expect( - evaluate(function() { + evaluate(function () { /** @returns test */ })[0].returns[0] ).toEqual({ title: 'returns', - description: remark().parse('test') + description: remarkParse('test') }); expect( - evaluate(function() { + evaluate(function () { /** @returns {number} test */ })[0].returns[0] ).toEqual({ - description: remark().parse('test'), + description: remarkParse('test'), title: 'returns', type: { name: 'number', @@ -903,54 +935,68 @@ test('parse - @returns', function() { }); }); -test('parse - @see', function() { +test('parse - @see', function () { expect( - evaluate(function() { - /** @see test */ + evaluate(function () { + /** @see [test](#test) */ })[0].sees - ).toEqual([remark().parse('test')]); + ).toEqual([ + { + title: 'sees', + description: remarkParse('[test](#test)') + } + ]); expect( - evaluate(function() { + evaluate(function () { /** - * @see a - * @see b + * @see [a](#a) + * @see [b](#b) */ })[0].sees - ).toEqual([remark().parse('a'), remark().parse('b')]); + ).toEqual([ + { + title: 'sees', + description: remarkParse('[a](#a)') + }, + { + title: 'sees', + description: remarkParse('[b](#b)') + } + ]); }); -test('parse - @since', function() {}); +test('parse - @since', function () {}); -test('parse - @static', function() { +test('parse - @static', function () { expect( - evaluate(function() { + evaluate(function () { /** @static */ })[0].scope ).toBe('static'); }); -test('parse - @summary', function() { +test('parse - @summary', function () { expect( - evaluate(function() { + evaluate(function () { /** @summary test */ })[0].summary - ).toEqual(remark().parse('test')); + ).toEqual(remarkParse('test')); }); -test('parse - @this', function() {}); +test('parse - @this', function () {}); -test('parse - @throws', function() { +test('parse - @throws', function () { expect( - evaluate(function() { + evaluate(function () { /** @throws desc */ })[0].throws[0] ).toEqual({ - description: remark().parse('desc') + description: remarkParse('desc') }); expect( - evaluate(function() { + evaluate(function () { /** @throws {Error} */ })[0].throws[0] ).toEqual({ @@ -961,7 +1007,7 @@ test('parse - @throws', function() { }); expect( - evaluate(function() { + evaluate(function () { /** @throws {Error} desc */ })[0].throws[0] ).toEqual({ @@ -969,11 +1015,11 @@ test('parse - @throws', function() { name: 'Error', type: 'NameExpression' }, - description: remark().parse('desc') + description: remarkParse('desc') }); expect( - evaluate(function() { + evaluate(function () { /** * @throws a * @throws b @@ -981,39 +1027,39 @@ test('parse - @throws', function() { })[0].throws ).toEqual([ { - description: remark().parse('a') + description: remarkParse('a') }, { - description: remark().parse('b') + description: remarkParse('b') } ]); }); -test('parse - @todo', function() { +test('parse - @todo', function () { expect( - evaluate(function() { + evaluate(function () { /** @todo test */ })[0].todos - ).toEqual([remark().parse('test')]); + ).toEqual([remarkParse('test')]); expect( - evaluate(function() { + evaluate(function () { /** * @todo a * @todo b */ })[0].todos - ).toEqual([remark().parse('a'), remark().parse('b')]); + ).toEqual([remarkParse('a'), remarkParse('b')]); }); -test('parse - @tutorial', function() {}); +test('parse - @tutorial', function () {}); -test('parse - @type', function() {}); +test('parse - @type', function () {}); -test('parse - @typedef', function() { +test('parse - @typedef', function () { expect( pick( - evaluate(function() { + evaluate(function () { /** @typedef {Object} name */ })[0], ['kind', 'name', 'type'] @@ -1028,23 +1074,71 @@ test('parse - @typedef', function() { }); }); -test('parse - @var', function() {}); +test('parse - @var', function () {}); -test('parse - @variation', function() { +test('parse - @variation', function () { expect( - evaluate(function() { + evaluate(function () { /** @variation 1 */ })[0].variation ).toBe(1); }); -test('parse - @version', function() {}); +test('parse - @version', function () {}); + +test('parse - @virtual', function () {}); + +test('parse - @yield', function () { + expect( + evaluate(function () { + /** @yield test */ + })[0].yields[0] + ).toEqual({ + title: 'yields', + description: remarkParse('test') + }); + + expect( + evaluate(function () { + /** @yield {number} test */ + })[0].yields[0] + ).toEqual({ + description: remarkParse('test'), + title: 'yields', + type: { + name: 'number', + type: 'NameExpression' + } + }); +}); + +test('parse - @yields', function () { + expect( + evaluate(function () { + /** @yields test */ + })[0].yields[0] + ).toEqual({ + title: 'yields', + description: remarkParse('test') + }); -test('parse - @virtual', function() {}); + expect( + evaluate(function () { + /** @yields {number} test */ + })[0].yields[0] + ).toEqual({ + description: remarkParse('test'), + title: 'yields', + type: { + name: 'number', + type: 'NameExpression' + } + }); +}); -test('parse - unknown tag', function() { +test('parse - unknown tag', function () { expect( - evaluate(function() { + evaluate(function () { /** @unknown */ })[0].errors[0] ).toEqual({ @@ -1053,43 +1147,35 @@ test('parse - unknown tag', function() { }); }); -test('parse - {@link}', function() { +test('parse - {@link}', function () { expect( - removePosition( - evaluate(function() { - /** {@link Foo} */ - })[0].description - ) - ).toEqual(addJSDocTag(removePosition(remark().parse('[Foo](Foo)')))); + evaluate(function () { + /** {@link Foo} */ + })[0].description + ).toEqual(addJSDocTag(remarkParse('[Foo](Foo)'))); expect( - removePosition( - evaluate(function() { - /** {@link Foo|text} */ - })[0].description - ) - ).toEqual(addJSDocTag(removePosition(remark().parse('[text](Foo)')))); + evaluate(function () { + /** {@link Foo|text} */ + })[0].description + ).toEqual(addJSDocTag(remarkParse('[text](Foo)'))); expect( - removePosition( - evaluate(function() { - /** {@link Foo text} */ - })[0].description - ) - ).toEqual(addJSDocTag(removePosition(remark().parse('[text](Foo)')))); + evaluate(function () { + /** {@link Foo text} */ + })[0].description + ).toEqual(addJSDocTag(remarkParse('[text](Foo)'))); }); -test('parse - {@linkcode}', function() {}); +test('parse - {@linkcode}', function () {}); -test('parse - {@linkplain}', function() {}); +test('parse - {@linkplain}', function () {}); -test('parse - {@tutorial}', function() { +test('parse - {@tutorial}', function () { expect( - removePosition( - evaluate(function() { - /** {@tutorial id} */ - })[0].description - ) + evaluate(function () { + /** {@tutorial id} */ + })[0].description ).toEqual({ type: 'root', children: [ @@ -1114,11 +1200,9 @@ test('parse - {@tutorial}', function() { }); expect( - removePosition( - evaluate(function() { - /** {@tutorial id|text} */ - })[0].description - ) + evaluate(function () { + /** {@tutorial id|text} */ + })[0].description ).toEqual({ type: 'root', children: [ @@ -1143,11 +1227,9 @@ test('parse - {@tutorial}', function() { }); expect( - removePosition( - evaluate(function() { - /** {@tutorial id text} */ - })[0].description - ) + evaluate(function () { + /** {@tutorial id text} */ + })[0].description ).toEqual({ type: 'root', children: [ diff --git a/__tests__/lib/parsers/javascript.js b/__tests__/lib/parsers/javascript.js index 1f92d4c62..855f404c4 100644 --- a/__tests__/lib/parsers/javascript.js +++ b/__tests__/lib/parsers/javascript.js @@ -1,5 +1,7 @@ -const remark = require('remark'); -const parse = require('../../../src/parsers/javascript'); +import removePosition from '../../../src/remark-remove-position.js'; +import { remark } from 'remark'; +const remarkParse = remark().use(removePosition).parse; +import parse from '../../../src/parsers/javascript'; function toComments(source, filename, opts) { source = typeof source === 'string' ? source : '(' + source.toString() + ')'; @@ -12,41 +14,41 @@ function toComments(source, filename, opts) { ); } -test('parse - leading comment', function() { +test('parse - leading comment', function () { expect( - toComments(function() { + toComments(function () { /** one */ /** two */ function two() {} - }).map(function(c) { + }).map(function (c) { return c.description; }) - ).toEqual([remark().parse('one'), remark().parse('two')]); + ).toEqual([remarkParse('one'), remarkParse('two')]); }); -test('parse - trailing comment', function() { +test('parse - trailing comment', function () { expect( - toComments(function() { + toComments(function () { /** one */ function one() {} /** two */ - }).map(function(c) { + }).map(function (c) { return c.description; }) - ).toEqual([remark().parse('one'), remark().parse('two')]); + ).toEqual([remarkParse('one'), remarkParse('two')]); }); -test('parse - unknown tag', function() { +test('parse - unknown tag', function () { expect( - toComments(function() { + toComments(function () { /** @unknown */ })[0].tags[0].title ).toBe('unknown'); }); -test('parse - error', function() { +test('parse - error', function () { expect( - toComments(function() { + toComments(function () { /** @param {foo */ })[0].errors ).toEqual([ @@ -55,7 +57,7 @@ test('parse - error', function() { ]); }); -test('parse - document exported', function() { +test('parse - document exported', function () { expect( toComments( ` @@ -85,7 +87,7 @@ test('parse - document exported', function() { ).toBe(2); }); -test('parse - constructor comments', function() { +test('parse - constructor comments', function () { expect( toComments(` class Test { diff --git a/__tests__/lib/parsers/parse_to_ast.js b/__tests__/lib/parsers/parse_to_ast.js index 675e64dfc..00f8af883 100644 --- a/__tests__/lib/parsers/parse_to_ast.js +++ b/__tests__/lib/parsers/parse_to_ast.js @@ -1,8 +1,8 @@ -const fs = require('fs'); -const { - commentToFlow, - parseToAst -} = require('../../../src/parsers/parse_to_ast'); +import fs from 'fs'; +import { createRequire } from 'module'; +import { commentToFlow, parseToAst } from '../../../src/parsers/parse_to_ast'; + +const require = createRequire(import.meta.url); describe('flow comments', () => { const f = require.resolve('../../fixture/flow/comment-types'); @@ -18,6 +18,6 @@ describe('flow comments', () => { }); test('valid js', () => { - expect(() => parseToAst(src)).not.toThrowError(); + expect(() => parseToAst(src, 'test.js')).not.toThrowError(); }); }); diff --git a/__tests__/lib/server.js b/__tests__/lib/server.js deleted file mode 100644 index 6b5187d94..000000000 --- a/__tests__/lib/server.js +++ /dev/null @@ -1,59 +0,0 @@ -const get = require('../utils').get; -const File = require('vinyl'); -const getPort = require('get-port'); -const Server = require('../../src/serve/server'); - -const jsFile = new File({ - cwd: '/', - base: '/test/', - path: '/test/file.js', - contents: new Buffer('var test = 123;') -}); - -const coffeeFile = new File({ - cwd: '/', - base: '/test/', - path: '/test/file.coffee', - contents: new Buffer('test = 123') -}); - -const indexFile = new File({ - cwd: '/', - base: '/test/', - path: '/test/index.html', - contents: new Buffer('') -}); - -test('server - throws on bad port', function() { - expect(function() { - const server = new Server('${port}'); - }).toThrow(); - expect(function() { - const server = new Server(); - }).toThrow(); -}); - -test('server', async function() { - const port = await getPort(); - const server = new Server(port, true); - expect(server).toBeTruthy(); - await server.start(); - try { - await get(`http://localhost:${port}/file.coffee`); - } catch (code) { - expect(code).toEqual(404); - } - - server.setFiles([coffeeFile]); - let text; - - text = await get(`http://localhost:${port}/file.coffee`); - expect(text).toMatchSnapshot(); - server.setFiles([coffeeFile, jsFile]); - text = await get(`http://localhost:${port}/file.js`); - expect(text).toMatchSnapshot(); - server.setFiles([coffeeFile, indexFile, jsFile]); - text = await get(`http://localhost:${port}/`); - expect(text).toMatchSnapshot(); - await server.stop(); -}); diff --git a/__tests__/lib/sort.js b/__tests__/lib/sort.js index 015a0d43f..941b163b1 100644 --- a/__tests__/lib/sort.js +++ b/__tests__/lib/sort.js @@ -1,21 +1,20 @@ -const sort = require('../../src/sort'); -const path = require('path'); +import sort from '../../src/sort.js'; +import path from 'path'; +import { fileURLToPath } from 'url'; -test('sort stream alphanumeric', function() { - const apples = { context: { sortKey: 'a' }, name: 'apples' }; - const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; - const banana = { context: { sortKey: 'c' }, name: 'bananas' }; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); - expect(sort([apples, carrot, banana])).toEqual([apples, carrot, banana]); +const apples = { context: { sortKey: 'a' }, name: 'apples' }; +const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; +const bananas = { context: { sortKey: 'c' }, name: 'bananas' }; - expect(sort([carrot, apples, banana])).toEqual([apples, carrot, banana]); +test('sort stream alphanumeric', function () { + expect(sort([apples, carrot, bananas])).toEqual([apples, carrot, bananas]); + expect(sort([carrot, apples, bananas])).toEqual([apples, carrot, bananas]); }); -test('sort stream with configuration', function() { - const apples = { context: { sortKey: 'a' }, name: 'apples' }; - const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; - const bananas = { context: { sortKey: 'c' }, name: 'bananas' }; - +test('sort stream with configuration', function () { expect( sort([apples, carrot, bananas], { toc: ['carrot', 'bananas'] @@ -23,11 +22,7 @@ test('sort stream with configuration', function() { ).toEqual([carrot, bananas, apples]); }); -test('sort stream with configuration and a section', function() { - const apples = { context: { sortKey: 'a' }, name: 'apples' }; - const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; - const bananas = { context: { sortKey: 'c' }, name: 'bananas' }; - +test('sort stream with configuration and a section', function () { const section = { name: 'This is the banana type', description: 'here lies bananas' @@ -43,49 +38,11 @@ test('sort stream with configuration and a section', function() { children: [ { type: 'text', - value: 'here lies bananas', - position: { - start: { - line: 1, - column: 1, - offset: 0 - }, - end: { - line: 1, - column: 18, - offset: 17 - }, - indent: [] - } + value: 'here lies bananas' } - ], - position: { - start: { - line: 1, - column: 1, - offset: 0 - }, - end: { - line: 1, - column: 18, - offset: 17 - }, - indent: [] - } - } - ], - position: { - start: { - line: 1, - column: 1, - offset: 0 - }, - end: { - line: 1, - column: 18, - offset: 17 + ] } - } + ] }, kind: 'note', path: [ @@ -103,12 +60,8 @@ test('sort stream with configuration and a section', function() { ).toEqual([carrot, sectionMarkdown, bananas, apples]); }); -test('sort an already-sorted stream containing a section/description', function() { +test('sort an already-sorted stream containing a section/description', function () { // this happens in the 'serve' task - const apples = { context: { sortKey: 'a' }, name: 'apples' }; - const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; - const bananas = { context: { sortKey: 'c' }, name: 'bananas' }; - const section = { name: 'This is the banana type', description: 'here lies bananas' @@ -123,49 +76,11 @@ test('sort an already-sorted stream containing a section/description', function( children: [ { type: 'text', - value: 'here lies bananas', - position: { - start: { - line: 1, - column: 1, - offset: 0 - }, - end: { - line: 1, - column: 18, - offset: 17 - }, - indent: [] - } + value: 'here lies bananas' } - ], - position: { - start: { - line: 1, - column: 1, - offset: 0 - }, - end: { - line: 1, - column: 18, - offset: 17 - }, - indent: [] - } + ] } - ], - position: { - start: { - line: 1, - column: 1, - offset: 0 - }, - end: { - line: 1, - column: 18, - offset: 17 - } - } + ] }, kind: 'note', path: [ @@ -185,11 +100,7 @@ test('sort an already-sorted stream containing a section/description', function( expect(sortTwice).toEqual([carrot, sectionMarkdown, bananas, apples]); }); -test('sort toc with files', function() { - const apples = { context: { sortKey: 'a' }, name: 'apples' }; - const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; - const bananas = { context: { sortKey: 'c' }, name: 'bananas' }; - +test('sort toc with files', function () { const snowflake = { name: 'snowflake', file: path.join(__dirname, '../fixture/snowflake.md') @@ -202,11 +113,7 @@ test('sort toc with files', function() { ).toMatchSnapshot(); }); -test('sort toc with files absolute path', function() { - const apples = { context: { sortKey: 'a' }, name: 'apples' }; - const carrot = { context: { sortKey: 'b' }, name: 'carrot' }; - const bananas = { context: { sortKey: 'c' }, name: 'bananas' }; - +test('sort toc with files absolute path', function () { const snowflake = { name: 'snowflake', file: path.join(__dirname, '../fixture/snowflake.md') @@ -218,10 +125,11 @@ test('sort toc with files absolute path', function() { ).toMatchSnapshot(); }); -test('sort toc with files absolute path', function() { +test('sort toc with files absolute path', function () { const apples = { context: { sortKey: 'a' }, name: 'apples', + kind: 'function', memberof: 'classB' }; const carrot = { @@ -232,7 +140,8 @@ test('sort toc with files absolute path', function() { const bananas = { context: { sortKey: 'c' }, name: 'bananas', - memberof: 'classB' + kind: 'function', + memberof: 'classA' }; const snowflake = { @@ -241,7 +150,19 @@ test('sort toc with files absolute path', function() { }; expect( sort([carrot, apples, bananas], { - sortOrder: 'alpha' + sortOrder: ['alpha'] + }) + ).toMatchSnapshot(); + + expect( + sort([carrot, apples, bananas], { + sortOrder: ['kind', 'alpha'] + }) + ).toMatchSnapshot(); + + expect( + sort([carrot, apples, bananas], { + sortOrder: ['memberof', 'kind', 'alpha'] }) ).toMatchSnapshot(); }); diff --git a/__tests__/lib/ts_doctrine.js b/__tests__/lib/ts_doctrine.js new file mode 100644 index 000000000..05e7fc790 --- /dev/null +++ b/__tests__/lib/ts_doctrine.js @@ -0,0 +1,411 @@ +import tsDoctrine from '../../src/ts_doctrine.js'; +import parse from '../../src/parsers/javascript'; +import babelTypes from '@babel/types'; +const TSTYPE_TYPES = babelTypes.TSTYPE_TYPES; + +function toComment(fn, filename) { + return parse( + { + file: filename || 'test.ts', + source: fn instanceof Function ? '(' + fn.toString() + ')' : fn + }, + {} + )[0]; +} + +test('tsDoctrine', function () { + const types = TSTYPE_TYPES.slice(); + + function toDoctrineType(flowType) { + const annotation = toComment( + '/** add */function add(a: ' + flowType + ' ) { }' + ).context.ast.node.params[0].typeAnnotation.typeAnnotation; + if (types.indexOf(annotation.type) !== -1) { + types.splice(types.indexOf(annotation.type), 1); + } + return tsDoctrine(annotation); + } + + expect(toDoctrineType('number')).toEqual({ + type: 'NameExpression', + name: 'number' + }); + + expect(toDoctrineType('string')).toEqual({ + type: 'NameExpression', + name: 'string' + }); + + expect(toDoctrineType('boolean')).toEqual({ + type: 'NameExpression', + name: 'boolean' + }); + + expect(toDoctrineType('symbol')).toEqual({ + type: 'NameExpression', + name: 'symbol' + }); + + expect(toDoctrineType('object')).toEqual({ + type: 'NameExpression', + name: 'object' + }); + + expect(toDoctrineType('any')).toEqual({ + type: 'AllLiteral' + }); + + expect(toDoctrineType('this')).toEqual({ + type: 'NameExpression', + name: 'this' + }); + + expect(toDoctrineType('never')).toEqual({ + type: 'NameExpression', + name: 'never' + }); + + expect(toDoctrineType('(y:Foo) => Bar')).toEqual({ + type: 'FunctionType', + params: [ + { + type: 'ParameterType', + name: 'y', + expression: { + type: 'NameExpression', + name: 'Foo' + } + } + ], + result: { + type: 'NameExpression', + name: 'Bar' + } + }); + + expect(toDoctrineType('new (y:Foo) => Bar')).toEqual({ + type: 'FunctionType', + params: [ + { + type: 'ParameterType', + name: 'y', + expression: { + type: 'NameExpression', + name: 'Foo' + } + } + ], + result: { + type: 'NameExpression', + name: 'Bar' + } + }); + + expect(toDoctrineType('(...y: Foo) => Bar')).toEqual({ + type: 'FunctionType', + params: [ + { + type: 'RestType', + expression: { + type: 'ParameterType', + name: 'y', + expression: { + type: 'NameExpression', + name: 'Foo' + } + } + } + ], + result: { + type: 'NameExpression', + name: 'Bar' + } + }); + + expect(toDoctrineType('number | string')).toEqual({ + type: 'UnionType', + elements: [ + { + type: 'NameExpression', + name: 'number' + }, + { + type: 'NameExpression', + name: 'string' + } + ] + }); + + expect(toDoctrineType('(number | string)')).toEqual({ + type: 'UnionType', + elements: [ + { + type: 'NameExpression', + name: 'number' + }, + { + type: 'NameExpression', + name: 'string' + } + ] + }); + + expect(toDoctrineType('Object')).toEqual({ + type: 'NameExpression', + name: 'Object' + }); + + expect(toDoctrineType('namedType.propertyOfType')).toEqual({ + type: 'NameExpression', + name: 'namedType.propertyOfType' + }); + + expect(toDoctrineType('Array')).toEqual({ + applications: [ + { + type: 'NameExpression', + name: 'namedType.propertyOfType' + } + ], + expression: { + name: 'Array', + type: 'NameExpression' + }, + type: 'TypeApplication' + }); + + expect(toDoctrineType('Array>')).toEqual({ + applications: [ + { + applications: [ + { + name: 'boolean', + type: 'NameExpression' + } + ], + expression: { + type: 'NameExpression', + name: 'namedType.propertyOfType' + }, + type: 'TypeApplication' + } + ], + expression: { + name: 'Array', + type: 'NameExpression' + }, + type: 'TypeApplication' + }); + + expect(toDoctrineType('{ a: foo.bar }')).toEqual({ + fields: [ + { + key: 'a', + type: 'FieldType', + value: { + name: 'foo.bar', + type: 'NameExpression' + } + } + ], + type: 'RecordType' + }); + + expect(toDoctrineType('{ a: { b: foo.bar } }')).toEqual({ + fields: [ + { + key: 'a', + type: 'FieldType', + value: { + type: 'RecordType', + fields: [ + { + key: 'b', + type: 'FieldType', + value: { + name: 'foo.bar', + type: 'NameExpression' + } + } + ] + } + } + ], + type: 'RecordType' + }); + + expect(toDoctrineType('{ a: 1 }')).toEqual({ + type: 'RecordType', + fields: [ + { + type: 'FieldType', + key: 'a', + value: { + type: 'NumericLiteralType', + value: 1 + } + } + ] + }); + + expect(toDoctrineType('{ a?: string }')).toEqual({ + type: 'RecordType', + fields: [ + { + type: 'FieldType', + key: 'a', + value: { + type: 'OptionalType', + expression: { + name: 'string', + type: 'NameExpression' + } + } + } + ] + }); + + expect(toDoctrineType('unknown')).toEqual({ + type: 'AllLiteral' + }); + + expect(toDoctrineType('Array')).toEqual({ + type: 'NameExpression', + name: 'Array' + }); + + expect(toDoctrineType('Array')).toEqual({ + type: 'TypeApplication', + expression: { + type: 'NameExpression', + name: 'Array' + }, + applications: [ + { + type: 'NameExpression', + name: 'number' + } + ] + }); + + expect(toDoctrineType('number[]')).toEqual({ + type: 'TypeApplication', + expression: { + type: 'NameExpression', + name: 'Array' + }, + applications: [ + { + type: 'NameExpression', + name: 'number' + } + ] + }); + + expect(toDoctrineType('[]')).toEqual({ + type: 'ArrayType', + elements: [] + }); + + expect(toDoctrineType('[number]')).toEqual({ + type: 'ArrayType', + elements: [ + { + type: 'NameExpression', + name: 'number' + } + ] + }); + + expect(toDoctrineType('[string, boolean]')).toEqual({ + type: 'ArrayType', + elements: [ + { + type: 'NameExpression', + name: 'string' + }, + { + type: 'NameExpression', + name: 'boolean' + } + ] + }); + + expect(toDoctrineType('[string, ...boolean]')).toEqual({ + type: 'ArrayType', + elements: [ + { + type: 'NameExpression', + name: 'string' + }, + { + type: 'RestType', + expression: { + type: 'NameExpression', + name: 'boolean' + } + } + ] + }); + + expect(toDoctrineType('(y:any) => any')).toEqual({ + type: 'FunctionType', + params: [ + { + expression: { type: 'AllLiteral' }, + name: 'y', + type: 'ParameterType' + } + ], + result: { type: 'AllLiteral' } + }); + + expect(toDoctrineType('undefined')).toEqual({ + type: 'UndefinedLiteral' + }); + + expect(toDoctrineType('"value"')).toEqual({ + type: 'StringLiteralType', + value: 'value' + }); + + expect(toDoctrineType('1')).toEqual({ + type: 'NumericLiteralType', + value: 1 + }); + + expect(toDoctrineType('true')).toEqual({ + type: 'BooleanLiteralType', + value: true + }); + + expect(toDoctrineType('false')).toEqual({ + type: 'BooleanLiteralType', + value: false + }); + + expect(toDoctrineType('null')).toEqual({ + type: 'NullLiteral' + }); + + expect(toDoctrineType('void')).toEqual({ + type: 'VoidLiteral' + }); + + expect(types).toEqual([ + 'TSBigIntKeyword', + 'TSIntrinsicKeyword', + 'TSTypePredicate', + 'TSTypeQuery', + 'TSOptionalType', // handled - not top-level. + 'TSRestType', // handled - not top-level. + 'TSIntersectionType', // no equivalent in doctrine... + 'TSConditionalType', + 'TSInferType', + 'TSTypeOperator', + 'TSIndexedAccessType', + 'TSMappedType', + 'TSExpressionWithTypeArguments', + 'TSImportType' + ]); +}); diff --git a/__tests__/lib/walk.js b/__tests__/lib/walk.js index 2fa1702cd..da00f2020 100644 --- a/__tests__/lib/walk.js +++ b/__tests__/lib/walk.js @@ -1,7 +1,7 @@ -const walk = require('../../src/walk').walk; +import walk from '../../src/walk.js'; -describe('walk', function() { - test('flat comments', function() { +describe('walk', function () { + test('flat comments', function () { const comments = [{ name: 'Tom' }]; function renamer(comment, options) { @@ -19,7 +19,7 @@ describe('walk', function() { ]); }); - test('nested comments', function() { + test('nested comments', function () { const comments = [ { name: 'Tom', diff --git a/__tests__/linker.js b/__tests__/linker.js index 35cead80c..aa8857c9d 100644 --- a/__tests__/linker.js +++ b/__tests__/linker.js @@ -1,6 +1,6 @@ -const LinkerStack = require('../src/output/util/linker_stack'); +import LinkerStack from '../src/output/util/linker_stack.js'; -test('linkerStack', function() { +test('linkerStack', function () { const linkerStack = new LinkerStack({}); expect(linkerStack.link('string')).toBe( @@ -35,7 +35,7 @@ test('linkerStack', function() { namespace: 'Image' } ], - function(namespace) { + function (namespace) { return '#' + namespace; } ); diff --git a/__tests__/test.js b/__tests__/test.js index 7d470411d..aa9037c0c 100644 --- a/__tests__/test.js +++ b/__tests__/test.js @@ -1,18 +1,22 @@ -const documentationSchema = require('documentation-schema'); -const validate = require('json-schema'); -const documentation = require('../'); -const outputMarkdown = require('../src/output/markdown.js'); -const outputMarkdownAST = require('../src/output/markdown_ast.js'); -const outputHtml = require('../src/output/html.js'); -const normalize = require('./utils').normalize; -const glob = require('glob'); -const pify = require('pify'); -const path = require('path'); -const fs = require('fs'); -const _ = require('lodash'); -const chdir = require('chdir'); +import documentationSchema from 'documentation-schema'; +import validate from 'json-schema'; +import * as documentation from '../src/index'; +import outputMarkdown from '../src/output/markdown.js'; +import outputMarkdownAST from '../src/output/markdown_ast.js'; +import outputHtml from '../src/output/html.js'; +import { normalize } from './utils'; +import glob from 'glob'; +import pify from 'pify'; +import path from 'path'; +import fs from 'fs'; +import _ from 'lodash'; +import chdir from 'chdir'; +import config from '../src/config'; +import { fileURLToPath } from 'url'; const UPDATE = !!process.env.UPDATE; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); function makePOJO(ast) { return JSON.parse(JSON.stringify(ast)); @@ -30,9 +34,12 @@ function readOptionsFromFile(file) { return {}; } +beforeEach(function () { + config.reset(); +}); + if (fs.existsSync(path.join(__dirname, '../.git'))) { - test('git option', async function() { - jest.setTimeout(10000); // 10 second timeout. After update flow.js on 0.56 version the test is executed more time. + test('git option', async function () { const file = path.join(__dirname, './fixture/simple.input.js'); const result = await documentation.build([file], { github: true }); normalize(result); @@ -43,7 +50,7 @@ if (fs.existsSync(path.join(__dirname, '../.git'))) { }); } -test('document-exported error', async function() { +test('document-exported error', async function () { const file = path.join(__dirname, 'fixture', 'document-exported-bad', 'x.js'); try { await documentation.build([file], { documentExported: true }); @@ -52,27 +59,23 @@ test('document-exported error', async function() { } }); -test('external modules option', async function() { - const result = await documentation.build( - [path.join(__dirname, 'fixture', 'external.input.js')], - { - external: '(external|external/node_modules/*)' - } - ); +test('Check that external modules could parse as input', async function () { + const dir = path.join(__dirname, 'fixture'); + const result = await documentation.build([ + path.join(dir, 'node_modules', 'external', 'lib', 'main.js'), + path.join(dir, 'node_modules', 'external2', 'index.js'), + path.join(dir, 'external.input.js') + ]); normalize(result); - const outputfile = path.join( - __dirname, - 'fixture', - '_external-deps-included.json' - ); + const outputfile = path.join(dir, '_external-deps-included.json'); expect(result).toMatchSnapshot(); }); -test('bad input', function() { +test('bad input', function () { glob .sync(path.join(__dirname, 'fixture/bad', '*.input.js')) - .forEach(function(file) { - test(path.basename(file), function() { + .forEach(function (file) { + test(path.basename(file), function () { return documentation .build([file], readOptionsFromFile(file)) .then(res => { @@ -90,50 +93,42 @@ test('bad input', function() { }); }); -describe('html', function() { +describe('html', function () { glob .sync(path.join(__dirname, 'fixture/html', '*.input.js')) - .forEach(function(file) { - test(path.basename(file), async function() { - const result = await documentation.build( - [file], - readOptionsFromFile(file) - ); + .forEach(function (file) { + test(path.basename(file), async function () { + const options = readOptionsFromFile(file); + const result = await documentation.build([file], options); const html = await outputHtml(result, {}); const clean = html - .sort((a, b) => a.path > b.path) - .filter(r => r.path.match(/(html)$/)) - .map(r => - r.contents - .toString() - .replace(/documentation \d+\.\d+\.\d+(-\w+(\.\d+)?)?/g, '') - .replace(/\d+\.\d+\.\d+(-\w+(\.\d+)?)?<\/code>/g, '') - ) - .join('\n'); + .replace(/documentation \d+\.\d+\.\d+(-\w+(\.\d+)?)?/g, '') + .replace(/\d+\.\d+\.\d+(-\w+(\.\d+)?)?<\/code>/g, ''); + expect(clean).toMatchSnapshot(); }); }); }); -describe('outputs', function() { +describe('outputs', function () { glob .sync(path.join(__dirname, 'fixture', '*.input.js')) - .forEach(function(file) { - describe(path.basename(file), async function() { + .forEach(function (file) { + describe(path.basename(file), function () { let result = null; - beforeEach(async function() { + beforeEach(async function () { result = await documentation.build([file], readOptionsFromFile(file)); }); - test('markdown', async function() { + test('markdown', async function () { const md = await outputMarkdown(_.cloneDeep(result), { markdownToc: true }); - expect(result.toString()).toMatchSnapshot(); + expect(md.toString()).toMatchSnapshot(); }); if (file.match(/es6.input.js/)) { - test('no markdown TOC', async function() { + test('no markdown TOC', async function () { const txt = await outputMarkdown(_.cloneDeep(result), { markdownToc: false }); @@ -141,16 +136,16 @@ describe('outputs', function() { }); } - test('markdown AST', async function() { + test('markdown AST', async function () { const ast = await outputMarkdownAST(_.cloneDeep(result), {}); expect(ast).toMatchSnapshot(); }); - test('JSON', function() { + test('JSON', function () { normalize(result); - result.forEach(function(comment) { + result.forEach(function (comment) { validate(comment, documentationSchema.jsonSchema).errors.forEach( - function(error) { + function (error) { expect(error).toBeFalsy(); } ); @@ -161,7 +156,7 @@ describe('outputs', function() { }); }); -test('highlightAuto md output', async function() { +test('highlightAuto md output', async function () { const file = path.join( __dirname, 'fixture/auto_lang_hljs/multilanguage.input.js' @@ -175,7 +170,7 @@ test('highlightAuto md output', async function() { expect(md.toString()).toMatchSnapshot(); }); -test('config', async function() { +test('config', async function () { const file = path.join(__dirname, 'fixture', 'class.input.js'); const outputfile = path.join(__dirname, 'fixture', 'class.config.output.md'); const out = await documentation.build([file], { @@ -185,7 +180,7 @@ test('config', async function() { expect(md).toMatchSnapshot(); }); -test('config with nested sections', async function() { +test('config with nested sections', async function () { const file = path.join(__dirname, 'fixture', 'sections.input.js'); const out = await documentation.build([file], { config: path.join(__dirname, 'fixture', 'sections.config.yml') @@ -194,7 +189,7 @@ test('config with nested sections', async function() { expect(md).toMatchSnapshot(); }); -test('multi-file input', async function() { +test('multi-file input', async function () { const result = await documentation.build( [ path.join(__dirname, 'fixture', 'simple.input.js'), @@ -206,7 +201,7 @@ test('multi-file input', async function() { expect(result).toMatchSnapshot(); }); -test('accepts simple relative paths', async function() { +test('accepts simple relative paths', async function () { await pify(chdir)(__dirname); const data = await documentation.build( '__tests__/fixture/simple.input.js', @@ -215,7 +210,7 @@ test('accepts simple relative paths', async function() { expect(data.length).toBe(1); }); -test('.lint', async function() { +test('.lint', async function () { await pify(chdir)(__dirname); const data = await documentation.lint( '__tests__/fixture/simple.input.js', @@ -224,7 +219,7 @@ test('.lint', async function() { expect(data).toBe(''); }); -test('.lint with bad input', async function() { +test('.lint with bad input', async function () { await pify(chdir)(__dirname); try { await documentation.lint('__tests__/fixture/bad/syntax.input', { @@ -235,14 +230,14 @@ test('.lint with bad input', async function() { } }); -test('Vue file', async function() { +test('Vue file', async function () { await pify(chdir)(__dirname); const data = await documentation.build('__tests__/fixture/vue.input.vue', {}); normalize(data); expect(data).toMatchSnapshot(); }); -test('Vue file', async function() { +test('Vue file', async function () { await pify(chdir)(__dirname); const data = await documentation.build( '__tests__/fixture/vue-no-script.input.vue', @@ -252,7 +247,7 @@ test('Vue file', async function() { expect(data).toMatchSnapshot(); }); -test('Use Source attribute only', async function() { +test('Use Source attribute only', async function () { await pify(chdir)(__dirname); const documentationSource = ` /** diff --git a/__tests__/utils.js b/__tests__/utils.js index 874093df1..12b00ae6f 100644 --- a/__tests__/utils.js +++ b/__tests__/utils.js @@ -1,24 +1,8 @@ -const http = require('http'); -import { walk } from '../src/walk'; -const concat = require('concat-stream'); +import walk from '../src/walk.js'; +import http from 'http'; -function get(url, callback) { - return new Promise((resolve, reject) => { - http.get(url, function(res) { - res.pipe( - concat(function(text) { - if (res.statusCode >= 400) { - return reject(res.statusCode); - } - resolve(text.toString()); - }) - ); - }); - }); -} - -function normalize(comments) { - return walk(comments, function(comment) { +export function normalize(comments) { + return walk(comments, function (comment) { const hasGithub = !!comment.context.github; const path = comment.context.path; comment.context = { @@ -36,7 +20,7 @@ function normalize(comments) { }); } -module.exports.mockRepo = { +export const mockRepo = { master: { '/my': { repository: { @@ -74,6 +58,32 @@ module.exports.mockRepo = { } } }, + submodule: { + '/my': { + repository: { + 'my.submodule': { + '.git': 'gitdir: ../.git/modules/my.submodule', + 'index.js': 'module.exports = 42;' + }, + '.git': { + config: + '[submodule "my.submodule"]\n' + + 'url = https://github.com/foo/bar\n' + + 'active = true', + modules: { + 'my.submodule': { + HEAD: 'ref: refs/heads/master', + refs: { + heads: { + master: 'this_is_the_sha' + } + } + } + } + } + } + } + }, malformed: { '/my': { repository: { @@ -106,6 +116,3 @@ module.exports.mockRepo = { } } }; - -module.exports.get = get; -module.exports.normalize = normalize; diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 5e05b411a..000000000 --- a/babel.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - presets: [ - [ - '@babel/preset-env', - { - targets: { - node: 6 - }, - include: ['transform-regenerator'] - } - ], - '@babel/preset-flow' - ], - plugins: ['@babel/plugin-transform-async-to-generator'], - ignore: ['**/default_theme/assets/*'] -}; diff --git a/bin/documentation.js b/bin/documentation.js index 30635bf8c..057d3949e 100755 --- a/bin/documentation.js +++ b/bin/documentation.js @@ -2,24 +2,15 @@ /* eslint no-console: 0 */ -const yargs = require('yargs'); -const commands = require('../src/commands'); +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; +import commands from '../src/commands/index.js'; -const argv = yargs +yargs(hideBin(process.argv)) .strict() - .command(commands.serve) .command(commands.build) .command(commands.lint) .command(commands.readme) - .fail(function(msg, error) { - if (error) { - throw error; - } else { - yargs.showHelp('error'); - console.error(msg); - return yargs.exit(1); - } - }) .example('documentation build foo.js -f md > API.md') .example('documentation readme index.js -s "API Docs" --github') .version() @@ -50,15 +41,3 @@ const argv = yargs ) .recommendCommands() .help().argv; - -if (argv.private) { - console.error( - '--private is deprecated, please use the --access (or -a) option instead' - ); - console.error('for example: -a public -a private -a protected -a undefined'); -} - -if (!argv._handled) { - yargs.showHelp('error'); - process.exit(1); -} diff --git a/declarations/comment.js b/declarations/comment.js index 3a375077d..e3f0bfbe4 100644 --- a/declarations/comment.js +++ b/declarations/comment.js @@ -14,6 +14,7 @@ type DocumentationConfig = { parseExtension: Array, noReferenceLinks?: boolean, markdownToc?: boolean, + markdownTocMaxDepth?: number, documentExported?: boolean, resolve?: string, hljs?: Object @@ -67,7 +68,8 @@ type CommentTag = { default?: any, lineNumber?: number, type?: DoctrineType, - properties?: Array + properties?: Array, + readonly?: boolean }; type Comment = { @@ -76,6 +78,7 @@ type Comment = { augments: Array, examples: Array, + implements: Array, params: Array, properties: Array, returns: Array, @@ -97,6 +100,9 @@ type Comment = { memberof?: string, scope?: Scope, access?: Access, + readonly?: boolean, + abstract?: boolean, + generator?: boolean, alias?: string, copyright?: string, diff --git a/docs/FAQ.md b/docs/FAQ.md index 9f52e8256..e90a5c28a 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -52,7 +52,7 @@ documentation. * The JSDoc syntax exposes a powerful, standardized type syntax to, for example, express parameter types like 'an array of strings'. as `Array`, and to support custom object types with inter-linking -* The [eslint valid-jsdoc rule](http://eslint.org/docs/rules/valid-jsdoc.html) +* The [eslint valid-jsdoc rule](https://eslint.org/docs/rules/valid-jsdoc.html) makes it possible to require documentation as part of your linting step, ensuring that new code doesn't lower documentation coverage. diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md index 7b3d6584f..c1b062c29 100644 --- a/docs/GETTING_STARTED.md +++ b/docs/GETTING_STARTED.md @@ -7,7 +7,7 @@ in the JSDoc format. **But don't worry! Even though it's embedded in your code, JSDoc is not code. It's a simple and standard syntax for writing documentation. You don't need to be a developer to use it.** -Before you continue, make sure `documentation` is on your system (do `npm install -g documentation`, if not installed). +Before you continue, make sure `documentation` is on your system. (If it's not installed, run `npm install -g documentation`.) Now, let's dive in. @@ -31,7 +31,7 @@ function addOne(input) { The comment before the `addOne` function is a JSDoc comment. Note that it begins with `/**` instead of `/*`. JSDoc requires this. -If you were to write a comment like +If you were to write a comment like this: ```js // --- INVALID - this is ignored by JSDOC --- @@ -40,7 +40,7 @@ If you were to write a comment like // @returns {number} that number, plus one. ``` -the comment would be ignored by `documentation` because it uses `//` syntax instead of `/**`. +...the comment would be ignored by `documentation`, because it uses `//` syntax instead of `/**`. It's not valid JSDoc syntax. Let's break down the earlier JSDoc example: @@ -62,10 +62,9 @@ On the second line: * `@param` is **a tag**: This tag indicates that we'll be documenting a function's parameter. * `{number}` is **a type**. It says that the input to this function is - a JavaScript "number". It could also say `{string}`, + a JavaScript "number." It could also say `{string}`, `{Object}`, `{Date}`, or any other JavaScript built-in type. And if you - defined a custom class, like `FooClass`, you can use it as a type too by - saying `{FooClass}`. + defined a custom class, like `FooClass`, you can use it as a type, too! Just say `{FooClass}`. * `input` is the name of the input variable. It matches what the code says right below it (`function addOne(input)`). * `any number` is the description of the input. @@ -82,7 +81,18 @@ This is the syntax that describes an optional parameter: * @param {number} [input=5] any number ``` -If an input is omitted, the default value of 5 will be passed to the function. +If an input is omitted, the default value of `5` will be passed to the function. + +
    + +### **Show Options passing Value** + +```js + * @param {{status : "active" | "inactive" | "inprocess"}} +``` + +
    +
    ## What `documentation` does, so you don't have to @@ -90,29 +100,29 @@ If an input is omitted, the default value of 5 will be passed to the function. you want to read the code for yourself, here's a summary of its magic: **Inference**: JSDoc lets you specify absolutely everything about your code: -use @name to say what something is called, @kind for whether it's a function -or a class, @param for its parameters, and so on. But writing all of that +use `@name` to say what something is called, `@kind` for whether it's a function +or a class, `@param` for its parameters, and so on. But writing all of that explicitly is tedious, so where it can, `documentation` automatically -populates @name, @kind, and @memberof tags based on its reading of the +populates `@name`, `@kind`, and `@memberof` tags based on its reading of the code. **Normalization**: JSDoc has multiple words for the same thing: you can -say @augments or @extends and they'll do the same thing. +say `@augments` or `@extends`, and they'll do the same thing. ## Development Process If you're contributing documentation to a large project, there -are tools to help: [eslint's valid-jsdoc](http://eslint.org/docs/rules/valid-jsdoc) rule +are tools to help: [eslint's valid-jsdoc](https://eslint.org/docs/rules/valid-jsdoc) rule lets you confirm the presence of, and validate, JSDoc comments as part of an automated style check. ## The Tags -[usejsdoc.com](http://usejsdoc.org/index.html) covers all available tags in the +[**`jsdoc.app`**](https://jsdoc.app/) covers all available tags in the JSDoc syntax, and is a great reference. The most commonly used tags are: -* @param - input given to a function as an argument +* @param - input is given to a function as an argument * @returns - output value of a function * @name - explicitly set the documented name of a function, class, or variable * @private - you can use @private to document @@ -126,7 +136,7 @@ try [using a plugin for JSDoc](https://github.com/documentationjs/documentation/ ## Flow type annotations -Alternatively, [Flow](http://flowtype.org/) type annotations allows for a more compact syntax: +Alternatively, [Flow](https://flow.org) type annotations allows for a more compact syntax: ```js /** diff --git a/docs/NODE_API.md b/docs/NODE_API.md index a366b2497..f0f9d3dcc 100644 --- a/docs/NODE_API.md +++ b/docs/NODE_API.md @@ -2,22 +2,22 @@ ### Table of Contents -- [lint][1] - - [Parameters][2] - - [Examples][3] -- [build][4] - - [Parameters][5] - - [Examples][6] -- [formats][7] -- [formats.html][8] - - [Parameters][9] - - [Examples][10] -- [formats.markdown][11] - - [Parameters][12] - - [Examples][13] -- [formats.json][14] - - [Parameters][15] - - [Examples][16] +* [lint][1] + * [Parameters][2] + * [Examples][3] +* [build][4] + * [Parameters][5] + * [Examples][6] +* [formats][7] +* [formats.html][8] + * [Parameters][9] + * [Examples][10] +* [formats.markdown][11] + * [Parameters][12] + * [Examples][13] +* [formats.json][14] + * [Parameters][15] + * [Examples][16] ## lint @@ -27,18 +27,19 @@ of lint information intended for human-readable output. ### Parameters -- `indexes` **([Array][17]<[string][18]> | [string][18])** files to process -- `args` **[Object][19]** args - - `args.external` **[Array][17]<[string][18]>** a string regex / glob match pattern +* `indexes` **([Array][17]<[string][18]> | [string][18])** files to process +* `args` **[Object][19]** args + + * `args.external` **[Array][17]<[string][18]>** a string regex / glob match pattern that defines what external modules will be whitelisted and included in the generated documentation. - - `args.shallow` **[boolean][20]** whether to avoid dependency parsing + * `args.shallow` **[boolean][20]** whether to avoid dependency parsing even in JavaScript code. (optional, default `false`) - - `args.inferPrivate` **[string][18]?** a valid regular expression string + * `args.inferPrivate` **[string][18]?** a valid regular expression string to infer whether a code element should be private, given its naming structure. For instance, you can specify `inferPrivate: '^_'` to automatically treat methods named like `_myMethod` as private. - - `args.extension` **([string][18] \| [Array][17]<[string][18]>)?** treat additional file extensions + * `args.extension` **([string][18] | [Array][17]<[string][18]>)?** treat additional file extensions as JavaScript, extending the default set of `js`, `es6`, and `jsx`. ### Examples @@ -63,25 +64,27 @@ comments, given a root file as a path. ### Parameters -- `indexes` **([Array][17]<[string][18]> | [string][18])** files to process -- `args` **[Object][19]** args - - `args.external` **[Array][17]<[string][18]>** a string regex / glob match pattern +* `indexes` **([Array][17]<[string][18]> | [string][18])** files to process +* `args` **[Object][19]** args + + * `args.external` **[Array][17]<[string][18]>** a string regex / glob match pattern that defines what external modules will be whitelisted and included in the generated documentation. - - `args.shallow` **[boolean][20]** whether to avoid dependency parsing + * `args.shallow` **[boolean][20]** whether to avoid dependency parsing even in JavaScript code. (optional, default `false`) - - `args.order` **[Array][17]<([string][18] \| [Object][19])>** optional array that + * `args.sortOrder` **[Array][17]<([string][18] | [Object][19])>** optional array that defines sorting order of documentation (optional, default `[]`) - - `args.access` **[Array][17]<[string][18]>** an array of access levels + * `args.access` **[Array][17]<[string][18]>** an array of access levels to output in documentation (optional, default `[]`) - - `args.hljs` **[Object][19]?** hljs optional args - - `args.hljs.highlightAuto` **[boolean][20]** hljs automatically detect language (optional, default `false`) - - `args.hljs.languages` **[Array][17]?** languages for hljs to choose from - - `args.inferPrivate` **[string][18]?** a valid regular expression string + * `args.hljs` **[Object][19]?** hljs optional args + + * `args.hljs.highlightAuto` **[boolean][20]** hljs automatically detect language (optional, default `false`) + * `args.hljs.languages` **[Array][17]?** languages for hljs to choose from + * `args.inferPrivate` **[string][18]?** a valid regular expression string to infer whether a code element should be private, given its naming structure. For instance, you can specify `inferPrivate: '^_'` to automatically treat methods named like `_myMethod` as private. - - `args.extension` **([string][18] \| [Array][17]<[string][18]>)?** treat additional file extensions + * `args.extension` **([string][18] | [Array][17]<[string][18]>)?** treat additional file extensions as JavaScript, extending the default set of `js`, `es6`, and `jsx`. ### Examples @@ -91,7 +94,8 @@ var documentation = require('documentation'); documentation.build(['index.js'], { // only output comments with an explicit @public tag - access: ['public'] + access: ['public'], + sortOrder: ['kind', 'alpha'] }).then(res => { // res is an array of parsed comments with inferred properties // and more: everything you need to build documentation or @@ -114,25 +118,21 @@ Formats documentation as HTML. ### Parameters -- `comments` **[Array][17]<[Comment][22]>** parsed comments -- `config` **[Object][19]** Options that can customize the output - - `config.theme` **[string][18]** Name of a module used for an HTML theme. (optional, default `'default_theme'`) +* `comments` **[Array][17]<[Comment][22]>** parsed comments +* `config` **[Object][19]** Options that can customize the output + + * `config.theme` **[string][18]** Name of a module used for an HTML theme. (optional, default `'default_theme'`) ### Examples ```javascript var documentation = require('documentation'); -var streamArray = require('stream-array'); -var vfs = require('vinyl-fs'); documentation.build(['index.js']) - .then(documentation.formats.html) - .then(output => { - streamArray(output).pipe(vfs.dest('./output-directory')); - }); + .then(documentation.formats.html); ``` -Returns **[Promise][21]<[Array][17]<[Object][19]>>** Promise with results +Returns **[Promise][21]<[Array][17]<[Object][19]>>** Promise with results ## formats.markdown @@ -141,8 +141,8 @@ Formats documentation as ### Parameters -- `comments` **[Array][17]<[Object][19]>** parsed comments -- `args` **[Object][19]** Options that can customize the output +* `comments` **[Array][17]<[Object][19]>** parsed comments +* `args` **[Object][19]** Options that can customize the output ### Examples @@ -158,7 +158,7 @@ documentation.build(['index.js']) }); ``` -Returns **[Promise][21]<[string][18]>** a promise of the eventual value +Returns **[Promise][21]<[string][18]>** a promise of the eventual value ## formats.json @@ -166,7 +166,7 @@ Formats documentation as a JSON string. ### Parameters -- `comments` **[Array][17]<[Comment][22]>** parsed comments +* `comments` **[Array][17]<[Comment][22]>** parsed comments ### Examples @@ -182,7 +182,7 @@ documentation.build(['index.js']) }); ``` -Returns **[Promise][21]<[string][18]>** +Returns **[Promise][21]<[string][18]>** [1]: #lint @@ -228,4 +228,4 @@ Returns **[Promise][21]<[string][18]>** [22]: https://developer.mozilla.org/docs/Web/API/Comment/Comment -[23]: http://daringfireball.net/projects/markdown/ +[23]: https://daringfireball.net/projects/markdown/ diff --git a/docs/RECIPES.md b/docs/RECIPES.md index 5133e6f0f..16255f212 100644 --- a/docs/RECIPES.md +++ b/docs/RECIPES.md @@ -98,7 +98,7 @@ names with the parent object. Here's an example: ```js /** - * This method has hierachical params + * This method has hierarchical params * @param {Object} animals different kinds of animals * @param {String} animals.fishes number of kinds of fish */ @@ -113,8 +113,8 @@ explicit syntax is required. ## Object Factories -Libraries like [d3](http://d3js.org/) eschew JavaScript's `new` operator -in favor of the ['object factory' or 'module pattern'](http://www.macwright.org/2012/06/04/the-module-pattern.html). +Libraries like [d3](https://d3js.org) eschew JavaScript's `new` operator +in favor of the ['object factory' or 'module pattern'](https://macwright.org/2012/06/04/the-module-pattern.html). The factory function is a normal function that yields an object. That object has properties. In this case, we don't use the `@class` tag because @@ -174,3 +174,25 @@ The first documentation describes how you can call getTheTime without any arguments, and the second describes how you can call getTheTime with an argument. `documentation` will output two documented functions when you use this style. + +## Promises + +Promises have become a widely used feature in modern JavaScript. They are +documented in a similar manner to arrays: + +```js +/** + * Find a person's phone number in the database + * @param {string} name person's name + * @returns {Promise} promise with the phone number + */ +function findPersonAge(name) { + return new Promise((resolve, reject) => { + db.find({ name: name }) + .then(object => resolve(object.age)) + .catch(err => reject(err)) + }) +} +``` + +Multiple parameters within the `resolve` can be documented like so: `Promise`. diff --git a/docs/THEMING.md b/docs/THEMING.md index 4069507e8..a2d4a4b00 100644 --- a/docs/THEMING.md +++ b/docs/THEMING.md @@ -29,14 +29,44 @@ for some ideas. - Copy contents of `default_theme` folder (noted above) into a new folder in your project. One way to do it is to create a new git repository with the folder contents and add this line to your `package.json` `devDependencies` section: `"docjs-theme": "my-gh-username/reponame"`. That way when you install dependencies, your new theme will be in the projects `node_modules` folder. -- In the folder you created, replace `require('../')` on lines 10 and 11 of `index.js` with `require('documentation')` and save. +- In the folder you created, replace `require('../')` on lines 8 and 9 of `index.js` with `require('documentation')` and save. - You can now make changes that will show up when you generate your docs using your theme. Example `package.json` `scripts` entry: `"documentation build index.js -f html -o docs --theme node_modules/docjs-theme"` +#### Changes to Default Theme Via documentation.yml + +If a documentation.yml file is used to establish a table of contents for your documentation, small changes to the default style can be made via a + + + ### Sub Section header + Text that describes the section and sub-section here. +``` +Any changes to elements and classes that also exist in the standard theme will be overwritten by what is in the documentation.yml. This opens up the possibility of the same CSS being defined twice, which can be confusing and is not best practice. However, it is easy to change HTML style this way. Recommend only using classes defined this way that do not exist in the standard documentation.js theme. + ### Theming Markdown The default Markdown generator for documentation.js isn't customizable - instead of a plain-text theme, it's generated by creating an AST and then rendering -it with [remark](http://remark.js.org/). If you need something extra in Markdown, +it with [remark](https://remark.js.org/). If you need something extra in Markdown, you can either rally for that thing to be included in the default theme, or you can hack around it by using an HTML theme that outputs Markdown. diff --git a/docs/TROUBLESHOOTING.md b/docs/TROUBLESHOOTING.md index 72c029ee2..5c8397aec 100644 --- a/docs/TROUBLESHOOTING.md +++ b/docs/TROUBLESHOOTING.md @@ -17,8 +17,8 @@ might not understand it. If: ## Error: watch ENOSPC Linux systems can have a low limit of 'watchable files'. To increase this -limit, follow [the advice in this StackOverflow answer](http://stackoverflow.com/a/17437601/229001). +limit, follow [the advice in this StackOverflow answer](https://stackoverflow.com/questions/16748737/grunt-watch-error-waiting-fatal-error-watch-enospc/17437601#17437601). ## Error: EMFILE: too many open files -You'll need to increase the `ulimit` maximum for your system: [here's a StackOverflow issue explaining how](http://unix.stackexchange.com/questions/108174/how-to-persist-ulimit-settings-in-osx-mavericks). +You'll need to increase the `ulimit` maximum for your system: [here's a StackOverflow issue explaining how](https://unix.stackexchange.com/questions/108174/how-to-persistently-control-maximum-system-resource-consumption-on-mac). diff --git a/docs/USAGE.md b/docs/USAGE.md index 14960f983..4b0634187 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -29,6 +29,10 @@ Options: they change [boolean] --markdown-toc include a table of contents in markdown output [boolean] [default: true] + --markdown-toc-max-depth specifies the max depth of the table of contents in markdown output + [number] [default: 6] + --babel path to babelrc or babel.options.js to override + default babel config [string] [Standard: null] --shallow shallow mode turns off dependency resolution, only processing the specified files (or the main script specified in package.json) @@ -40,13 +44,11 @@ Options: [boolean] [default: false] --external a string / glob match pattern that defines which external modules will be whitelisted and included - in the generated documentation. [default: null] + in the generated documentation. [Standard: null] --require-extension, --re additional extensions to include in require() and import's search algorithm.For instance, adding .es5 would allow require("adder") to find "adder.es5" --parse-extension, --pe additional extensions to parse as source code. - --private, -p generate documentation tagged as private - [boolean] [default: false] --access, -a Include only comments with a given access level, out of private, protected, public, undefined. By default, public, protected, and undefined access @@ -59,8 +61,13 @@ Options: --document-exported Generate documentation for all exported bindings and members even if there is no JSDoc for them [boolean] [default: false] - --sort-order The order to sort the documentation - [choices: "source", "alpha"] [default: "source"] + --sort-order The order to sort the documentation, may be + specified multiple times + [choices: "source", "alpha", "kind", "memberof"] + + [default: "source"] + --resolve Dependency resolution algorithm. + [choices: "browser", "node"] [Standard: "browser"] --output, -o output location. omit for stdout, otherwise is a filename for single-file outputs and a directory name for multi-file outputs like html diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..89f2747ba --- /dev/null +++ b/package-lock.json @@ -0,0 +1,19715 @@ +{ + "name": "documentation", + "version": "14.0.3", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "documentation", + "version": "14.0.3", + "license": "ISC", + "dependencies": { + "@babel/core": "^7.18.10", + "@babel/generator": "^7.18.10", + "@babel/parser": "^7.18.11", + "@babel/traverse": "^7.18.11", + "@babel/types": "^7.18.10", + "chalk": "^5.0.1", + "chokidar": "^3.5.3", + "diff": "^5.1.0", + "doctrine-temporary-fork": "2.1.0", + "git-url-parse": "^13.1.0", + "github-slugger": "1.4.0", + "glob": "^8.0.3", + "globals-docs": "^2.4.1", + "highlight.js": "^11.6.0", + "ini": "^3.0.0", + "js-yaml": "^4.1.0", + "konan": "^2.1.1", + "lodash": "^4.17.21", + "mdast-util-find-and-replace": "^2.2.1", + "mdast-util-inject": "^1.1.0", + "micromark-util-character": "^1.1.0", + "parse-filepath": "^1.0.2", + "pify": "^6.0.0", + "read-pkg-up": "^9.1.0", + "remark": "^14.0.2", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.1", + "remark-reference-links": "^6.0.1", + "remark-toc": "^8.0.1", + "resolve": "^1.22.1", + "strip-json-comments": "^5.0.0", + "unist-builder": "^3.0.0", + "unist-util-visit": "^4.1.0", + "vfile": "^5.3.4", + "vfile-reporter": "^7.0.4", + "vfile-sort": "^3.0.0", + "yargs": "^17.5.1" + }, + "bin": { + "documentation": "bin/documentation.js" + }, + "devDependencies": { + "chdir": "0.0.0", + "cz-conventional-changelog": "3.3.0", + "documentation-schema": "0.0.1", + "eslint": "^8.21.0", + "eslint-config-prettier": "^8.5.0", + "fs-extra": "^10.1.0", + "husky": "^8.0.1", + "jest": "^28.1.3", + "json-schema": "^0.4.0", + "lint-staged": "^13.0.3", + "mock-fs": "^5.1.4", + "prettier": "^2.7.1", + "standard-version": "^9.5.0", + "tmp": "^0.2.1" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@vue/compiler-sfc": "^3.2.37", + "vue-template-compiler": "^2.7.8" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@commitlint/execute-rule": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz", + "integrity": "sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=v12" + } + }, + "node_modules/@commitlint/load": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.2.1.tgz", + "integrity": "sha512-qlaJkj0hfa9gtWRfCfbgFBTK3GYQRmjZhba4l9mUu4wV9lEZ4ICFlrLtd/8kaLXf/8xbrPhkAPkVFOAqM0YwUQ==", + "dev": true, + "optional": true, + "dependencies": { + "@commitlint/execute-rule": "^13.2.0", + "@commitlint/resolve-extends": "^13.2.0", + "@commitlint/types": "^13.2.0", + "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", + "chalk": "^4.0.0", + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "typescript": "^4.4.3" + }, + "engines": { + "node": ">=v12" + } + }, + "node_modules/@commitlint/load/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@commitlint/load/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/load/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@commitlint/load/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/@commitlint/load/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/load/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz", + "integrity": "sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw==", + "dev": true, + "optional": true, + "dependencies": { + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v12" + } + }, + "node_modules/@commitlint/types": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz", + "integrity": "sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=v12" + } + }, + "node_modules/@commitlint/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@commitlint/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/@commitlint/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "dev": true, + "optional": true, + "dependencies": { + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "cosmiconfig": ">=6" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.26", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.26.tgz", + "integrity": "sha512-1ZVIyyS1NXDRVT8GjWD5jULjhDyM3IsIHef2VGUMdnWOlX2tkPjyEX/7K0TGSH2S8EaPhp1ylFdjSjUGQ+gecg==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz", + "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==" + }, + "node_modules/@types/github-slugger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g==" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "node_modules/@types/node": { + "version": "18.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", + "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true, + "optional": true + }, + "node_modules/@types/prettier": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.4.tgz", + "integrity": "sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==" + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz", + "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", + "optional": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", + "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", + "optional": true, + "dependencies": { + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", + "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", + "optional": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-ssr": "3.2.37", + "@vue/reactivity-transform": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", + "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", + "optional": true, + "dependencies": { + "@vue/compiler-dom": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", + "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", + "optional": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz", + "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", + "optional": true + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", + "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/ccount": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", + "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", + "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", + "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", + "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chdir": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/chdir/-/chdir-0.0.0.tgz", + "integrity": "sha1-wpvbhfORg0yD3b8JDxihGw7Za+4=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", + "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commitizen": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.5.tgz", + "integrity": "sha512-9sXju8Qrz1B4Tw7kC5KhnvwYQN88qs2zbiB8oyMsnXZyJ24PPGiNM3nHr73d32dnE3i8VJEXddBFIbOgYSEXtQ==", + "dev": true, + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.4", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.6", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commitizen/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/commitizen/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/commitizen/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commitizen/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", + "dev": true + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz", + "integrity": "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==", + "dev": true, + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "optional": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "optional": true + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/doctrine-temporary-fork": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz", + "integrity": "sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/documentation-schema": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/documentation-schema/-/documentation-schema-0.0.1.tgz", + "integrity": "sha1-buBbR7CKBNAkEy11iT03ijZXIgk=", + "dev": true + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.210", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.210.tgz", + "integrity": "sha512-kSiX4tuyZijV7Cz0MWVmGT8K2siqaOA4Z66K5dCttPPRh0HicOcOAEj1KlC8O8J1aOS/1M8rGofOzksLKaHWcQ==" + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "optional": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-node-modules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz", + "integrity": "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==", + "dev": true, + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.0" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", + "integrity": "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==", + "dev": true, + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "node_modules/git-url-parse": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", + "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", + "dependencies": { + "git-up": "^7.0.0" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/gitconfiglocal/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/github-slugger": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", + "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" + }, + "node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "optional": true + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globals-docs": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/globals-docs/-/globals-docs-2.4.1.tgz", + "integrity": "sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==" + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hast-util-is-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", + "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-sanitize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-4.0.0.tgz", + "integrity": "sha512-pw56+69jq+QSr/coADNvWTmBPDy+XsmwaF5KnUys4/wM1jt/fZdl7GPxhXXXYdXnz3Gj3qMkbUCH2uKjvX0MgQ==", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz", + "integrity": "sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==", + "dependencies": { + "@types/hast": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.2", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", + "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "optional": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", + "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", + "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", + "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", + "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-ssh": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/konan": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz", + "integrity": "sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==", + "dependencies": { + "@babel/parser": "^7.10.5", + "@babel/traverse": "^7.10.5" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "node_modules/lint-staged": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/listr2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true, + "optional": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/longest-streak": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", + "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "optional": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "optional": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", + "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz", + "integrity": "sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", + "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz", + "integrity": "sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg==", + "dependencies": { + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz", + "integrity": "sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "dependencies": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", + "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "dependencies": { + "markdown-table": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "dependencies": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-inject": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz", + "integrity": "sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU=", + "dependencies": { + "mdast-util-to-string": "^1.0.0" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz", + "integrity": "sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "@types/mdurl": "^1.0.0", + "mdast-util-definitions": "^5.0.0", + "mdurl": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "unist-builder": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.3.tgz", + "integrity": "sha512-040jJYtjOUdbvYAXCfPrpLJRdvMOmR33KRqlhT4r+fEbVM+jao1RMbA8RmGeRmw8RAj3vQ+HvhIaJPijvnOwCg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-toc": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-6.1.0.tgz", + "integrity": "sha512-0PuqZELXZl4ms1sF7Lqigrqik4Ll3UhbI+jdTrfw7pZ9QPawgl7LD4GQ8MkU7bT/EwiVqChNTbifa2jLLKo76A==", + "dependencies": { + "@types/extend": "^3.0.0", + "@types/github-slugger": "^1.0.0", + "@types/mdast": "^3.0.0", + "extend": "^3.0.0", + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-toc/node_modules/mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-toc/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-toc/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz", + "integrity": "sha512-HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "parse-entities": "^3.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz", + "integrity": "sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.3.tgz", + "integrity": "sha512-JIfE1DGi64zzOx39/pGg6cZbiaUAF/MXbBLZnVl4aFz6Mja7GYMZjksfTGm9NzbgZkiZvbD77NLPuwGIRcFMjg==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", + "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz", + "integrity": "sha512-Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "parse-entities": "^3.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", + "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz", + "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", + "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", + "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", + "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mock-fs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-5.2.0.tgz", + "integrity": "sha512-2dF2R6YMSZbpip1V1WHKGLNjr/k48uQClqMVb5H3MOvwc9qhYis3/IWbj02qIg/Y8MDXKFF4c5v0rxx2o6xTZw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "optional": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", + "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", + "dependencies": { + "character-entities": "^2.0.0", + "character-entities-legacy": "^2.0.0", + "character-reference-invalid": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-path": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "dependencies": { + "parse-path": "^7.0.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-6.1.0.tgz", + "integrity": "sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/property-information": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", + "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/protocols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.1.0.tgz", + "integrity": "sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ==", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz", + "integrity": "sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/remark": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.2.tgz", + "integrity": "sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.2.tgz", + "integrity": "sha512-/CIOI7wzHJzsh48AiuIyIe1clxVkUtreul73zcCXLub0FmnevQE0UMFDQm7NUx8/3rl/4zCshlMfqBdWScQthw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "hast-util-sanitize": "^4.0.0", + "hast-util-to-html": "^8.0.0", + "mdast-util-to-hast": "^12.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reference-links": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/remark-reference-links/-/remark-reference-links-6.0.1.tgz", + "integrity": "sha512-34wY2C6HXSuKVTRtyJJwefkUD8zBOZOSHFZ4aSTnU2F656gr9WeuQ2dL6IJDK3NPd2F6xKF2t4XXcQY9MygAXg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-toc": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-8.0.1.tgz", + "integrity": "sha512-7he2VOm/cy13zilnOTZcyAoyoolV26ULlon6XyCFU+vG54Z/LWJnwphj/xKIDLOt66QmJUgTyUvLVHi2aAElyg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-toc": "^6.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sade": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", + "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "dev": true, + "optional": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "optional": true + }, + "node_modules/space-separated-tokens": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", + "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", + "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.2.tgz", + "integrity": "sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", + "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz", + "integrity": "sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trough": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", + "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "optional": true, + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true, + "optional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz", + "integrity": "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unified": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", + "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", + "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-builder": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", + "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", + "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", + "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uvu": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.2.tgz", + "integrity": "sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3", + "totalist": "^2.0.0" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", + "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.4.tgz", + "integrity": "sha512-4cWalUnLrEnbeUQ+hARG5YZtaHieVK3Jp4iG5HslttkVl+MHunSGNAIrODOTLbtjWsNZJRMCkL66AhvZAYuJ9A==", + "dependencies": { + "@types/supports-color": "^8.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/vfile-reporter/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vfile-reporter/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/supports-color": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz", + "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/vfile-sort": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz", + "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==", + "dependencies": { + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-statistics": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz", + "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==", + "dependencies": { + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" + }, + "@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "requires": { + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "requires": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" + }, + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + }, + "@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "requires": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "requires": { + "@babel/types": "^7.26.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/traverse": { + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "requires": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "requires": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@commitlint/execute-rule": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz", + "integrity": "sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g==", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.2.1.tgz", + "integrity": "sha512-qlaJkj0hfa9gtWRfCfbgFBTK3GYQRmjZhba4l9mUu4wV9lEZ4ICFlrLtd/8kaLXf/8xbrPhkAPkVFOAqM0YwUQ==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/execute-rule": "^13.2.0", + "@commitlint/resolve-extends": "^13.2.0", + "@commitlint/types": "^13.2.0", + "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", + "chalk": "^4.0.0", + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "typescript": "^4.4.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@commitlint/resolve-extends": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz", + "integrity": "sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw==", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz", + "integrity": "sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "dev": true, + "optional": true, + "requires": { + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" + } + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + } + }, + "@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "requires": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + } + }, + "@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + } + }, + "@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + } + }, + "@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sinclair/typebox": { + "version": "0.24.26", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.26.tgz", + "integrity": "sha512-1ZVIyyS1NXDRVT8GjWD5jULjhDyM3IsIHef2VGUMdnWOlX2tkPjyEX/7K0TGSH2S8EaPhp1ylFdjSjUGQ+gecg==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "requires": { + "@types/ms": "*" + } + }, + "@types/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz", + "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==" + }, + "@types/github-slugger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g==" + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "requires": { + "@types/unist": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "requires": { + "@types/unist": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "@types/node": { + "version": "18.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", + "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true, + "optional": true + }, + "@types/prettier": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.4.tgz", + "integrity": "sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==" + }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@vue/compiler-core": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz", + "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", + "optional": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", + "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", + "optional": true, + "requires": { + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", + "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", + "optional": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-ssr": "3.2.37", + "@vue/reactivity-transform": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", + "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", + "optional": true, + "requires": { + "@vue/compiler-dom": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", + "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", + "optional": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/shared": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz", + "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", + "optional": true + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "bail": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", + "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "requires": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==" + }, + "ccount": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", + "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==" + }, + "chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==" + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "character-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", + "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==" + }, + "character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" + }, + "character-entities-legacy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", + "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==" + }, + "character-reference-invalid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", + "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==" + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chdir": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/chdir/-/chdir-0.0.0.tgz", + "integrity": "sha1-wpvbhfORg0yD3b8JDxihGw7Za+4=", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "comma-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", + "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==" + }, + "commander": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "dev": true + }, + "commitizen": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.5.tgz", + "integrity": "sha512-9sXju8Qrz1B4Tw7kC5KhnvwYQN88qs2zbiB8oyMsnXZyJ24PPGiNM3nHr73d32dnE3i8VJEXddBFIbOgYSEXtQ==", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.4", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.6", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + } + }, + "conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", + "dev": true + }, + "conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + } + }, + "conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "requires": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + } + } + }, + "conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true + }, + "conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "requires": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "requires": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz", + "integrity": "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==", + "dev": true, + "requires": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } + }, + "conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, + "requires": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + } + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "optional": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "optional": true + } + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "optional": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decode-named-character-reference": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "requires": { + "character-entities": "^2.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "dequal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "doctrine-temporary-fork": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz", + "integrity": "sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==", + "requires": { + "esutils": "^2.0.2" + } + }, + "documentation-schema": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/documentation-schema/-/documentation-schema-0.0.1.tgz", + "integrity": "sha1-buBbR7CKBNAkEy11iT03ijZXIgk=", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "electron-to-chromium": { + "version": "1.4.210", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.210.tgz", + "integrity": "sha512-kSiX4tuyZijV7Cz0MWVmGT8K2siqaOA4Z66K5dCttPPRh0HicOcOAEj1KlC8O8J1aOS/1M8rGofOzksLKaHWcQ==" + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "optional": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-node-modules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz", + "integrity": "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "requires": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "git-raw-commits": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", + "integrity": "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "requires": { + "meow": "^8.0.0", + "semver": "^6.0.0" + } + }, + "git-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", + "requires": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "git-url-parse": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", + "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", + "requires": { + "git-up": "^7.0.0" + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "requires": { + "ini": "^1.3.2" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "github-slugger": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", + "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "optional": true + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globals-docs": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/globals-docs/-/globals-docs-2.4.1.tgz", + "integrity": "sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "hast-util-is-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", + "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", + "requires": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + } + }, + "hast-util-sanitize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-4.0.0.tgz", + "integrity": "sha512-pw56+69jq+QSr/coADNvWTmBPDy+XsmwaF5KnUys4/wM1jt/fZdl7GPxhXXXYdXnz3Gj3qMkbUCH2uKjvX0MgQ==", + "requires": { + "@types/hast": "^2.0.0" + } + }, + "hast-util-to-html": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz", + "integrity": "sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==", + "requires": { + "@types/hast": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.2", + "unist-util-is": "^5.0.0" + } + }, + "hast-util-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", + "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "optional": true + }, + "highlight.js": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==" + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==" + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-alphabetical": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", + "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==" + }, + "is-alphanumerical": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", + "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", + "requires": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-decimal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", + "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", + "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==" + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-ssh": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "requires": { + "protocols": "^2.0.1" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + } + }, + "jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + } + }, + "jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "konan": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz", + "integrity": "sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==", + "requires": { + "@babel/parser": "^7.10.5", + "@babel/traverse": "^7.10.5" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "lint-staged": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", + "dev": true, + "requires": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true + } + } + }, + "listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true, + "optional": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", + "dev": true + }, + "longest-streak": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", + "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "optional": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "optional": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "markdown-table": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", + "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==" + }, + "mdast-util-definitions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz", + "integrity": "sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^3.0.0" + }, + "dependencies": { + "unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + } + }, + "unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + } + } + }, + "mdast-util-find-and-replace": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", + "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", + "requires": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + } + } + }, + "mdast-util-from-markdown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "dependencies": { + "mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" + } + } + }, + "mdast-util-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz", + "integrity": "sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg==", + "requires": { + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0" + } + }, + "mdast-util-gfm-autolink-literal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", + "requires": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + } + }, + "mdast-util-gfm-footnote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz", + "integrity": "sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "mdast-util-gfm-strikethrough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "requires": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-gfm-table": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", + "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "requires": { + "markdown-table": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-gfm-task-list-item": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "requires": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-inject": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz", + "integrity": "sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU=", + "requires": { + "mdast-util-to-string": "^1.0.0" + } + }, + "mdast-util-to-hast": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz", + "integrity": "sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw==", + "requires": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "@types/mdurl": "^1.0.0", + "mdast-util-definitions": "^5.0.0", + "mdurl": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "unist-builder": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "mdast-util-to-markdown": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.3.tgz", + "integrity": "sha512-040jJYtjOUdbvYAXCfPrpLJRdvMOmR33KRqlhT4r+fEbVM+jao1RMbA8RmGeRmw8RAj3vQ+HvhIaJPijvnOwCg==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "dependencies": { + "mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" + } + } + }, + "mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + }, + "mdast-util-toc": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-6.1.0.tgz", + "integrity": "sha512-0PuqZELXZl4ms1sF7Lqigrqik4Ll3UhbI+jdTrfw7pZ9QPawgl7LD4GQ8MkU7bT/EwiVqChNTbifa2jLLKo76A==", + "requires": { + "@types/extend": "^3.0.0", + "@types/github-slugger": "^1.0.0", + "@types/mdast": "^3.0.0", + "extend": "^3.0.0", + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0" + }, + "dependencies": { + "mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" + }, + "unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + } + }, + "unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + } + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromark": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", + "requires": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "micromark-core-commonmark": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz", + "integrity": "sha512-HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA==", + "requires": { + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "parse-entities": "^3.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz", + "integrity": "sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q==", + "requires": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-extension-gfm-autolink-literal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-footnote": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==", + "requires": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-strikethrough": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==", + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-table": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.3.tgz", + "integrity": "sha512-JIfE1DGi64zzOx39/pGg6cZbiaUAF/MXbBLZnVl4aFz6Mja7GYMZjksfTGm9NzbgZkiZvbD77NLPuwGIRcFMjg==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-tagfilter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", + "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "requires": { + "micromark-util-types": "^1.0.0" + } + }, + "micromark-extension-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-label": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "requires": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-decode-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz", + "integrity": "sha512-Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "parse-entities": "^3.0.0" + } + }, + "micromark-util-encode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", + "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==" + }, + "micromark-util-html-tag-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz", + "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==" + }, + "micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "requires": { + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-sanitize-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", + "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-subtokenize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-util-symbol": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", + "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==" + }, + "micromark-util-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", + "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==" + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mock-fs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-5.2.0.tgz", + "integrity": "sha512-2dF2R6YMSZbpip1V1WHKGLNjr/k48uQClqMVb5H3MOvwc9qhYis3/IWbj02qIg/Y8MDXKFF4c5v0rxx2o6xTZw==", + "dev": true + }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-entities": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", + "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", + "requires": { + "character-entities": "^2.0.0", + "character-entities-legacy": "^2.0.0", + "character-reference-invalid": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse-path": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", + "requires": { + "protocols": "^2.0.0" + } + }, + "parse-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "requires": { + "parse-path": "^7.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true + }, + "pify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-6.1.0.tgz", + "integrity": "sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, + "postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "optional": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "property-information": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", + "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==" + }, + "protocols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "requires": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "dependencies": { + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "locate-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.1.0.tgz", + "integrity": "sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ==", + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==" + }, + "read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + } + }, + "type-fest": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz", + "integrity": "sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==" + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "remark": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.2.tgz", + "integrity": "sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==", + "requires": { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" + } + }, + "remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + } + }, + "remark-html": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.2.tgz", + "integrity": "sha512-/CIOI7wzHJzsh48AiuIyIe1clxVkUtreul73zcCXLub0FmnevQE0UMFDQm7NUx8/3rl/4zCshlMfqBdWScQthw==", + "requires": { + "@types/mdast": "^3.0.0", + "hast-util-sanitize": "^4.0.0", + "hast-util-to-html": "^8.0.0", + "mdast-util-to-hast": "^12.0.0", + "unified": "^10.0.0" + } + }, + "remark-parse": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "remark-reference-links": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/remark-reference-links/-/remark-reference-links-6.0.1.tgz", + "integrity": "sha512-34wY2C6HXSuKVTRtyJJwefkUD8zBOZOSHFZ4aSTnU2F656gr9WeuQ2dL6IJDK3NPd2F6xKF2t4XXcQY9MygAXg==", + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-stringify": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "remark-toc": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-8.0.1.tgz", + "integrity": "sha512-7he2VOm/cy13zilnOTZcyAoyoolV26ULlon6XyCFU+vG54Z/LWJnwphj/xKIDLOt66QmJUgTyUvLVHi2aAElyg==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-toc": "^6.0.0", + "unified": "^10.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "sade": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", + "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "requires": { + "mri": "^1.1.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "optional": true + }, + "source-map-support": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "dev": true, + "optional": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "optional": true + }, + "space-separated-tokens": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", + "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "standard-version": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", + "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "stringify-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.2.tgz", + "integrity": "sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ==", + "requires": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "dependencies": { + "character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" + } + } + }, + "stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", + "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz", + "integrity": "sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==" + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "trough": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", + "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==" + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "optional": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true + } + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true, + "optional": true + }, + "uglify-js": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz", + "integrity": "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw==", + "dev": true, + "optional": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "unified": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", + "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "requires": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", + "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" + } + } + }, + "unist-builder": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", + "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-generated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" + }, + "unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" + }, + "unist-util-position": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", + "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } + }, + "unist-util-visit-parents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", + "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uvu": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.2.tgz", + "integrity": "sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==", + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3", + "totalist": "^2.0.0" + }, + "dependencies": { + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" + } + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + } + }, + "vfile-message": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", + "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "vfile-reporter": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.4.tgz", + "integrity": "sha512-4cWalUnLrEnbeUQ+hARG5YZtaHieVK3Jp4iG5HslttkVl+MHunSGNAIrODOTLbtjWsNZJRMCkL66AhvZAYuJ9A==", + "requires": { + "@types/supports-color": "^8.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "supports-color": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz", + "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==" + } + } + }, + "vfile-sort": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz", + "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==", + "requires": { + "vfile-message": "^3.0.0" + } + }, + "vfile-statistics": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz", + "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==", + "requires": { + "vfile-message": "^3.0.0" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "optional": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "optional": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zwitch": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==" + } + } +} diff --git a/package.json b/package.json index 6db78d086..7cf634a44 100644 --- a/package.json +++ b/package.json @@ -1,97 +1,71 @@ { "name": "documentation", "description": "a documentation generator", - "version": "9.3.0", + "version": "14.0.3", "author": "Tom MacWright", + "homepage": "https://documentation.js.org", + "type": "module", "bin": { "documentation": "./bin/documentation.js" }, "dependencies": { - "@babel/core": "^7.1.2", - "@babel/generator": "^7.1.3", - "@babel/parser": "7.1.3", - "@babel/plugin-proposal-class-properties": "^7.1.0", - "@babel/plugin-proposal-decorators": "^7.1.2", - "@babel/plugin-proposal-do-expressions": "^7.0.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-export-namespace-from": "^7.0.0", - "@babel/plugin-proposal-function-bind": "^7.0.0", - "@babel/plugin-proposal-function-sent": "^7.1.0", - "@babel/plugin-proposal-json-strings": "^7.0.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-proposal-pipeline-operator": "^7.0.0", - "@babel/plugin-proposal-throw-expressions": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-import-meta": "^7.0.0", - "@babel/preset-env": "^7.1.0", - "@babel/preset-flow": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@babel/preset-stage-0": "^7.0.0", - "@babel/traverse": "^7.1.4", - "@babel/types": "^7.1.3", - "ansi-html": "^0.0.7", - "babelify": "^10.0.0", - "chalk": "^2.3.0", - "chokidar": "^2.0.4", - "concat-stream": "^1.6.0", - "disparity": "^2.0.0", - "doctrine-temporary-fork": "2.0.1", - "get-port": "^4.0.0", - "git-url-parse": "^10.0.1", - "github-slugger": "1.2.0", - "glob": "^7.1.2", - "globals-docs": "^2.4.0", - "highlight.js": "^9.15.5", - "js-yaml": "^3.10.0", - "lodash": "^4.17.10", + "@babel/core": "^7.18.10", + "@babel/generator": "^7.18.10", + "@babel/parser": "^7.18.11", + "@babel/traverse": "^7.18.11", + "@babel/types": "^7.18.10", + "chalk": "^5.0.1", + "chokidar": "^3.5.3", + "diff": "^5.1.0", + "doctrine-temporary-fork": "2.1.0", + "git-url-parse": "^13.1.0", + "github-slugger": "1.4.0", + "glob": "^8.0.3", + "globals-docs": "^2.4.1", + "highlight.js": "^11.6.0", + "ini": "^3.0.0", + "js-yaml": "^4.1.0", + "konan": "^2.1.1", + "lodash": "^4.17.21", + "mdast-util-find-and-replace": "^2.2.1", "mdast-util-inject": "^1.1.0", - "micromatch": "^3.1.5", - "mime": "^2.2.0", - "module-deps-sortable": "5.0.0", + "micromark-util-character": "^1.1.0", "parse-filepath": "^1.0.2", - "pify": "^4.0.0", - "read-pkg-up": "^4.0.0", - "remark": "^9.0.0", - "remark-html": "^8.0.0", - "remark-reference-links": "^4.0.1", - "remark-toc": "^5.0.0", - "remote-origin-url": "0.4.0", - "resolve": "^1.8.1", - "stream-array": "^1.1.2", - "strip-json-comments": "^2.0.1", - "tiny-lr": "^1.1.0", - "unist-builder": "^1.0.2", - "unist-util-visit": "^1.3.0", - "vfile": "^3.0.0", - "vfile-reporter": "^5.0.0", - "vfile-sort": "^2.1.0", - "vinyl": "^2.1.0", - "vinyl-fs": "^3.0.2", - "vue-template-compiler": "^2.5.16", - "yargs": "^9.0.1" + "pify": "^6.0.0", + "read-pkg-up": "^9.1.0", + "remark": "^14.0.2", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.1", + "remark-reference-links": "^6.0.1", + "remark-toc": "^8.0.1", + "resolve": "^1.22.1", + "strip-json-comments": "^5.0.0", + "unist-builder": "^3.0.0", + "unist-util-visit": "^4.1.0", + "vfile": "^5.3.4", + "vfile-reporter": "^7.0.4", + "vfile-sort": "^3.0.0", + "yargs": "^17.5.1" + }, + "optionalDependencies": { + "@vue/compiler-sfc": "^3.2.37", + "vue-template-compiler": "^2.7.8" }, "devDependencies": { - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "^9.0.0", - "babel-jest": "^23.4.2", "chdir": "0.0.0", - "cz-conventional-changelog": "2.1.0", + "cz-conventional-changelog": "3.3.0", "documentation-schema": "0.0.1", - "eslint": "^5.0.1", - "eslint-config-prettier": "^3.0.1", - "fs-extra": "^7.0.0", - "husky": "^0.14.3", - "jest": "^23.0.0", - "json-schema": "0.2.3", - "lint-staged": "^7.2.0", - "mock-fs": "^4.4.2", - "p-event": "^2.0.0", - "prettier": "^1.10.2", - "standard-version": "^4.3.0", - "tmp": "^0.0.33" + "eslint": "^8.21.0", + "eslint-config-prettier": "^8.5.0", + "fs-extra": "^10.1.0", + "husky": "^8.0.1", + "jest": "^28.1.3", + "json-schema": "^0.4.0", + "lint-staged": "^13.0.3", + "mock-fs": "^5.1.4", + "prettier": "^2.7.1", + "standard-version": "^9.5.0", + "tmp": "^0.2.1" }, "keywords": [ "documentation", @@ -110,13 +84,13 @@ "scripts": { "build": "npm run doc", "release": "standard-version", - "precommit": "lint-staged", - "prepublish": "npm run build", "format": "prettier --write '{src,__tests__,declarations,bin,default_theme}/**/*.js'", "doc": "node ./bin/documentation.js build src/index.js -f md --access=public > docs/NODE_API.md", "self-lint": "node ./bin/documentation.js lint src", - "test": "eslint . && jest", - "test-ci": "eslint . && jest --runInBand" + "test": "eslint . && node --experimental-vm-modules node_modules/jest/bin/jest.js", + "test-ci": "eslint . && node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand", + "prepare": "husky install", + "pre-commit": "lint-staged" }, "jest": { "testPathIgnorePatterns": [ @@ -124,8 +98,12 @@ "utils.js", "fixture" ], + "transform": {}, "collectCoverage": true, - "testEnvironment": "node" + "testEnvironment": "jest-environment-node", + "moduleNameMapper": { + "#(.*)": "/node_modules/$1" + } }, "config": { "commitizen": { @@ -133,17 +111,11 @@ } }, "engines": { - "node": ">=4" + "node": ">=18" }, "lint-staged": { "*.js": [ - "prettier --write", - "git add" - ] - }, - "greenkeeper": { - "ignore": [ - "remote-origin-url" + "prettier --write" ] } } diff --git a/screenshorts/show options.jpg b/screenshorts/show options.jpg new file mode 100644 index 000000000..cca24e34b Binary files /dev/null and b/screenshorts/show options.jpg differ diff --git a/src/commands/build.js b/src/commands/build.js index ce09d86e7..264b1205e 100644 --- a/src/commands/build.js +++ b/src/commands/build.js @@ -1,14 +1,12 @@ -const streamArray = require('stream-array'); -const sharedOptions = require('./shared_options'); -const path = require('path'); -const fs = require('fs'); -const vfs = require('vinyl-fs'); -const chokidar = require('chokidar'); -const documentation = require('../'); -const _ = require('lodash'); +import { sharedOutputOptions, sharedInputOptions } from './shared_options.js'; +import path from 'path'; +import fs from 'fs'; +import chokidar from 'chokidar'; +import * as documentation from '../index.js'; +import _ from 'lodash'; -module.exports.command = 'build [input..]'; -module.exports.describe = 'build documentation'; +const command = 'build [input..]'; +const describe = 'build documentation'; /** * Add yargs parsing for the build command @@ -16,20 +14,15 @@ module.exports.describe = 'build documentation'; * @returns {Object} yargs with options * @private */ -module.exports.builder = Object.assign( - {}, - sharedOptions.sharedOutputOptions, - sharedOptions.sharedInputOptions, - { - output: { - describe: - 'output location. omit for stdout, otherwise is a filename ' + - 'for single-file outputs and a directory name for multi-file outputs like html', - default: 'stdout', - alias: 'o' - } +const builder = Object.assign({}, sharedOutputOptions, sharedInputOptions, { + output: { + describe: + 'output location. omit for stdout, otherwise is a filename ' + + 'for single-file outputs and a directory name for multi-file outputs like html', + default: 'stdout', + alias: 'o' } -); +}); /* * The `build` command. Requires either `--output` or the `callback` argument. @@ -39,11 +32,11 @@ module.exports.builder = Object.assign( * The former case, with the callback, is used by the `serve` command, which is * just a thin wrapper around this one. */ -module.exports.handler = function build(argv) { +const handler = function build(argv) { let watcher; argv._handled = true; - if (!argv.input.length) { + if (!(argv.input && argv.input.length)) { try { argv.input = [ JSON.parse(fs.readFileSync(path.resolve('package.json'), 'utf8')) @@ -84,6 +77,10 @@ module.exports.handler = function build(argv) { updateWatcher(); } + if (!output) { + return; + } + if (argv.output === 'stdout') { if (argv.watch) { // In watch mode, clear the screen first to make updated outputs @@ -91,8 +88,6 @@ module.exports.handler = function build(argv) { process.stdout.write('\u001b[2J'); } process.stdout.write(output); - } else if (Array.isArray(output)) { - streamArray(output).pipe(vfs.dest(argv.output)); } else { fs.writeFileSync(argv.output, output); } @@ -114,3 +109,5 @@ module.exports.handler = function build(argv) { return generator(); }; + +export default { command, describe, builder, handler }; diff --git a/src/commands/index.js b/src/commands/index.js index 450acd2a1..8af23945d 100644 --- a/src/commands/index.js +++ b/src/commands/index.js @@ -8,10 +8,8 @@ * the main CLI help, and optionally a `parseArgs(yargs, parentArgv)` function * to parse additional arguments. */ +import build from './build.js'; +import lint from './lint.js'; +import readme from './readme.js'; -module.exports = { - build: require('./build'), - serve: require('./serve'), - lint: require('./lint'), - readme: require('./readme') -}; +export default { build, lint, readme }; diff --git a/src/commands/lint.js b/src/commands/lint.js index 524674578..c1d65ac84 100644 --- a/src/commands/lint.js +++ b/src/commands/lint.js @@ -1,14 +1,14 @@ -const documentation = require('../'); -const fs = require('fs'); -const path = require('path'); -const sharedOptions = require('./shared_options'); +import * as documentation from '../index.js'; +import fs from 'fs'; +import path from 'path'; +import { sharedInputOptions } from './shared_options.js'; /* eslint no-console: 0 */ -module.exports.command = 'lint [input..]'; -module.exports.description = 'check for common style and uniformity mistakes'; -module.exports.builder = { - shallow: sharedOptions.sharedInputOptions.shallow +const command = 'lint [input..]'; +const description = 'check for common style and uniformity mistakes'; +const builder = { + shallow: sharedInputOptions.shallow }; /** @@ -19,7 +19,7 @@ module.exports.builder = { * @returns {undefined} has side-effects * @private */ -module.exports.handler = function(argv) { +const handler = function (argv) { argv._handled = true; if (!argv.input.length) { try { @@ -49,3 +49,5 @@ module.exports.handler = function(argv) { process.exit(1); }); }; + +export default { command, description, builder, handler }; diff --git a/src/commands/readme.js b/src/commands/readme.js index a7591b8d3..ad401a0fc 100644 --- a/src/commands/readme.js +++ b/src/commands/readme.js @@ -1,17 +1,17 @@ -const fs = require('fs'); -const remark = require('remark'); -const path = require('path'); -const documentation = require('../'); -const sharedOptions = require('./shared_options'); -const inject = require('mdast-util-inject'); -const chalk = require('chalk'); -const disparity = require('disparity'); -const getReadmeFile = require('../get-readme-file'); +import fs from 'fs'; +import { remark } from 'remark'; +import path from 'path'; +import * as documentation from '../index.js'; +import { sharedOutputOptions, sharedInputOptions } from './shared_options.js'; +import inject from 'mdast-util-inject'; +import chalk from 'chalk'; +import { createPatch } from 'diff'; +import getReadmeFile from '../get-readme-file.js'; -module.exports.command = 'readme [input..]'; -module.exports.description = 'inject documentation into your README.md'; +const command = 'readme [input..]'; +const description = 'inject documentation into your README.md'; -const defaultReadmeFile = getReadmeFile('.'); +const defaultReadmeFile = getReadmeFile(process.cwd()); /** * Add yargs parsing for the readme command @@ -19,35 +19,30 @@ const defaultReadmeFile = getReadmeFile('.'); * @returns {Object} yargs with options * @private */ -module.exports.builder = Object.assign( - {}, - sharedOptions.sharedOutputOptions, - sharedOptions.sharedInputOptions, - { - 'readme-file': { - describe: 'The markdown file into which to inject documentation', - default: defaultReadmeFile - }, - section: { - alias: 's', - describe: - 'The section heading after which to inject generated documentation', - required: true - }, - 'diff-only': { - alias: 'd', - describe: - 'Instead of updating the given README with the generated documentation,' + - ' just check if its contents match, exiting nonzero if not.', - default: false - }, - quiet: { - alias: 'q', - describe: 'Quiet mode: do not print messages or README diff to stdout.', - default: false - } +const builder = Object.assign({}, sharedOutputOptions, sharedInputOptions, { + 'readme-file': { + describe: 'The markdown file into which to inject documentation', + default: defaultReadmeFile + }, + section: { + alias: 's', + describe: + 'The section heading after which to inject generated documentation', + required: true + }, + 'diff-only': { + alias: 'd', + describe: + 'Instead of updating the given README with the generated documentation,' + + ' just check if its contents match, exiting nonzero if not.', + default: false + }, + quiet: { + alias: 'q', + describe: 'Quiet mode: do not print messages or README diff to stdout.', + default: false } -); +}); /** * Insert API documentation into a Markdown readme @@ -55,7 +50,7 @@ module.exports.builder = Object.assign( * @param {Object} argv args from the CLI option parser * @returns {undefined} has the side-effect of writing a file or printing to stdout */ -module.exports.handler = function readme(argv) { +const handler = function readme(argv) { argv._handled = true; if (!argv.input.length) { @@ -94,25 +89,45 @@ module.exports.handler = function readme(argv) { .process(readmeContent) ) .then(file => { - const diffOutput = disparity.unified(readmeContent, file.contents, { - paths: [argv.readmeFile, argv.readmeFile] - }); - if (!diffOutput.length) { + const diffRaw = createPatch('', readmeContent, file.value, '', ''); + if (diffRaw.split('\n').length === 5) { log(`${argv.readmeFile} is up to date.`); process.exit(0); } + // Replace diff headers with real values + const cleanedDiff = diffRaw + .replace(/^([^\n]+)\n([^\n]+)\n/m, '') + .replace(/^---.*/gm, `--- ${argv.readmeFile}\tremoved`) + .replace(/^\+\+\+.*/gm, `+++ ${argv.readmeFile}\tadded`); + + // Includes newlines for easier joins + const diffLines = cleanedDiff.split(/^/m); + const diffHeader = diffLines + .slice(0, 2) + .join('') + .replace(/[^\n\r]+/g, chalk.yellow('$&')); + const diffBody = diffLines + .slice(2) + .join('') + .replace(/^-[^\n\r]*/gm, chalk.red('$&')) + .replace(/^\+[^\n\r]*/gm, chalk.green('$&')) + .replace(/^@@.+@@/gm, chalk.magenta('$&')); + if (argv.d) { log( chalk.bold(`${argv.readmeFile} needs the following updates:`), - `\n${diffOutput}` + `\n${diffHeader}${diffBody}` ); process.exit(1); } else { - log(chalk.bold(`Updating ${argv.readmeFile}`), `\n${diffOutput}`); + log( + chalk.bold(`Updating ${argv.readmeFile}`), + `\n${diffHeader}${diffBody}` + ); } - fs.writeFileSync(argv.readmeFile, file.contents); + fs.writeFileSync(argv.readmeFile, file.value); }) .catch(err => { console.error(err); @@ -129,3 +144,5 @@ function plugin(options) { next(); }; } + +export default { command, description, builder, handler }; diff --git a/src/commands/serve.js b/src/commands/serve.js deleted file mode 100644 index f9c082dca..000000000 --- a/src/commands/serve.js +++ /dev/null @@ -1,99 +0,0 @@ -const errorPage = require('../serve/error_page'); -const fs = require('fs'); -const path = require('path'); -const chokidar = require('chokidar'); -const sharedOptions = require('./shared_options'); -const Server = require('../serve/server'); -const _ = require('lodash'); -const getPort = require('get-port'); -const documentation = require('../'); - -module.exports.command = 'serve [input..]'; -module.exports.description = 'generate, update, and display HTML documentation'; -/** - * Add yargs parsing for the serve command - * @param {Object} yargs module instance - * @returns {Object} yargs with options - * @private - */ -module.exports.builder = Object.assign( - {}, - sharedOptions.sharedOutputOptions, - sharedOptions.sharedInputOptions, - { - port: { - describe: 'preferred port for the local server', - type: 'number', - default: 4001 - } - } -); - -/** - * Wrap the documentation build command along with a server, making it possible - * to preview changes live - * @private - * @param {Object} argv cli input - * @returns {undefined} has side effects - */ -module.exports.handler = function serve(argv) { - argv._handled = true; - - if (!argv.input.length) { - try { - argv.input = [ - JSON.parse(fs.readFileSync(path.resolve('package.json'), 'utf8')) - .main || 'index.js' - ]; - } catch (e) { - throw new Error( - 'documentation was given no files and was not run in a module directory' - ); - } - } - - getPort({ port: argv.port }).then(port => { - const server = new Server(port); - let watcher; - - server.on('listening', function() { - process.stdout.write(`documentation.js serving on port ${port}\n`); - }); - - function updateWatcher() { - if (!watcher) { - watcher = chokidar.watch(argv.input); - watcher.on('all', _.debounce(updateServer, 300)); - } - - documentation - .expandInputs(argv.input, argv) - .then(files => { - watcher.add( - files.map(data => (typeof data === 'string' ? data : data.file)) - ); - }) - .catch(err => { - /* eslint no-console: 0 */ - return server.setFiles([errorPage(err)]).start(); - }); - } - - function updateServer() { - documentation - .build(argv.input, argv) - .then(comments => documentation.formats.html(comments, argv)) - .then(files => { - if (argv.watch) { - updateWatcher(); - } - server.setFiles(files).start(); - }) - .catch(err => { - return server.setFiles([errorPage(err)]).start(); - }); - } - - updateServer(); - }); -}; diff --git a/src/commands/shared_options.js b/src/commands/shared_options.js index b8c326306..0e8464dfd 100644 --- a/src/commands/shared_options.js +++ b/src/commands/shared_options.js @@ -1,7 +1,13 @@ /** * Adds shared options to any command that runs documentation */ -module.exports.sharedInputOptions = { +export const sharedInputOptions = { + babel: { + describe: + 'path to babelrc or babel.options.js to override default babel config', + type: 'string', + default: null + }, shallow: { describe: 'shallow mode turns off dependency resolution, ' + @@ -31,22 +37,14 @@ module.exports.sharedInputOptions = { describe: "additional extensions to include in require() and import's search algorithm." + 'For instance, adding .es5 would allow require("adder") to find "adder.es5"', - // Ensure that the value is an array - coerce: value => [].concat(value), + type: 'array', alias: 're' }, 'parse-extension': { describe: 'additional extensions to parse as source code.', - // Ensure that the value is an array - coerce: value => [].concat(value), + type: 'array', alias: 'pe' }, - private: { - describe: 'generate documentation tagged as private', - type: 'boolean', - default: false, - alias: 'p' - }, access: { describe: 'Include only comments with a given access level, out of private, ' + @@ -76,8 +74,9 @@ module.exports.sharedInputOptions = { }, 'sort-order': { describe: 'The order to sort the documentation', - choices: ['source', 'alpha'], - default: 'source' + array: true, + choices: ['source', 'alpha', 'kind', 'access', 'memberof'], + default: ['source'] }, resolve: { describe: 'Dependency resolution algorithm.', @@ -89,7 +88,7 @@ module.exports.sharedInputOptions = { /** * Adds shared options to any command that runs documentation */ -module.exports.sharedOutputOptions = { +export const sharedOutputOptions = { theme: { describe: 'specify a theme: this must be a valid theme module', alias: 't' @@ -123,5 +122,11 @@ module.exports.sharedOutputOptions = { describe: 'include a table of contents in markdown output', default: true, type: 'boolean' + }, + 'markdown-toc-max-depth': { + describe: + 'specifies the max depth of the table of contents in markdown output', + default: 6, + type: 'number' } }; diff --git a/src/config.js b/src/config.js new file mode 100644 index 000000000..17d49d3d4 --- /dev/null +++ b/src/config.js @@ -0,0 +1,29 @@ +const defaultConfig = { + // package.json ignored and don't get project infromation + 'no-package': false, + // Extenstions which by dafault are parse + parseExtension: ['.mjs', '.js', '.jsx', '.es5', '.es6', '.vue', '.ts', '.tsx'] +}; + +function normalaze(config, global) { + if (config.parseExtension) { + config.parseExtension = Array.from( + new Set([...config.parseExtension, ...global.parseExtension]) + ); + } + + return config; +} + +export default { + globalConfig: { + ...defaultConfig + }, + reset() { + this.globalConfig = { ...defaultConfig }; + this.globalConfig.parseExtension = [...defaultConfig.parseExtension]; + }, + add(parameters) { + Object.assign(this.globalConfig, normalaze(parameters, this.globalConfig)); + } +}; diff --git a/src/default_theme/README.md b/src/default_theme/README.md index 230c64f1f..c5e7d125d 100644 --- a/src/default_theme/README.md +++ b/src/default_theme/README.md @@ -4,7 +4,7 @@ This is the default theme for [documentationjs](https://github.com/documentationjs): it consists of underscore templates and a few assets: a [highlight.js](https://highlightjs.org/) -theme and [basscss](http://www.basscss.com/) as a basic CSS framework. +theme and [basscss](https://basscss.com/) as a basic CSS framework. This is bundled by default in documentation: it is the default theme. diff --git a/src/default_theme/assets/anchor.js b/src/default_theme/assets/anchor.js index f74c2de75..1f573dcbb 100644 --- a/src/default_theme/assets/anchor.js +++ b/src/default_theme/assets/anchor.js @@ -6,7 +6,7 @@ /* eslint-env amd, node */ // https://github.com/umdjs/umd/blob/master/templates/returnExports.js -(function(root, factory) { +(function (root, factory) { 'use strict'; if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. @@ -21,7 +21,7 @@ root.AnchorJS = factory(); root.anchors = new root.AnchorJS(); } -})(this, function() { +})(this, function () { 'use strict'; function AnchorJS(options) { this.options = options || {}; @@ -51,7 +51,7 @@ * https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40 * @returns {Boolean} - true if the current device supports touch. */ - this.isTouchDevice = function() { + this.isTouchDevice = function () { return !!( 'ontouchstart' in window || (window.DocumentTouch && document instanceof DocumentTouch) @@ -64,7 +64,7 @@ * to. Also accepts an array or nodeList containing the relavant elements. * @returns {this} - The AnchorJS object */ - this.add = function(selector) { + this.add = function (selector) { var elements, elsWithIds, idList, @@ -193,7 +193,7 @@ * OR a nodeList / array containing the DOM elements. * @returns {this} - The AnchorJS object */ - this.remove = function(selector) { + this.remove = function (selector) { var index, domAnchor, elements = _getElements(selector); @@ -216,7 +216,7 @@ /** * Removes all anchorjs links. Mostly used for tests. */ - this.removeAll = function() { + this.removeAll = function () { this.remove(this.elements); }; @@ -229,7 +229,7 @@ * @param {String} text - Any text. Usually pulled from the webpage element we are linking to. * @returns {String} - hyphen-delimited text for use in IDs and URLs. */ - this.urlify = function(text) { + this.urlify = function (text) { // Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!'<>]./()*\ var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g, urlText; @@ -260,7 +260,7 @@ * @param {HTMLElemnt} el - a DOM node * @returns {Boolean} true/false */ - this.hasAnchorJSLink = function(el) { + this.hasAnchorJSLink = function (el) { var hasLeftAnchor = el.firstChild && (' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1, diff --git a/src/default_theme/assets/site.js b/src/default_theme/assets/site.js index f86584f2f..a624be7b2 100644 --- a/src/default_theme/assets/site.js +++ b/src/default_theme/assets/site.js @@ -7,7 +7,7 @@ anchors.add('h3'); // Filter UI var tocElements = document.getElementById('toc').getElementsByTagName('li'); -document.getElementById('filter-input').addEventListener('keyup', function(e) { +document.getElementById('filter-input').addEventListener('keyup', function (e) { var i, element, children; // enter key @@ -22,14 +22,14 @@ document.getElementById('filter-input').addEventListener('keyup', function(e) { } } - var match = function() { + var match = function () { return true; }; var value = this.value.toLowerCase(); if (!value.match(/^\s*$/)) { - match = function(element) { + match = function (element) { var html = element.firstChild.innerHTML; return html && html.toLowerCase().indexOf(value) !== -1; }; @@ -114,12 +114,12 @@ var cw_without_sb = split_left.clientWidth; split_left.style.overflow = ''; Split(['#split-left', '#split-right'], { - elementStyle: function(dimension, size, gutterSize) { + elementStyle: function (dimension, size, gutterSize) { return { 'flex-basis': 'calc(' + size + '% - ' + gutterSize + 'px)' }; }, - gutterStyle: function(dimension, gutterSize) { + gutterStyle: function (dimension, gutterSize) { return { 'flex-basis': gutterSize + 'px' }; @@ -152,9 +152,9 @@ function loadState(ev) { } } -window.addEventListener('load', function() { +window.addEventListener('load', function () { // Restore after Firefox scrolls to hash. - setTimeout(function() { + setTimeout(function () { loadState(); // Update with initial scroll position. updateState(); diff --git a/src/default_theme/assets/split.js b/src/default_theme/assets/split.js index fc492d2e6..71f9a60bd 100644 --- a/src/default_theme/assets/split.js +++ b/src/default_theme/assets/split.js @@ -1,586 +1,782 @@ -/*! Split.js - v1.3.5 */ -// https://github.com/nathancahill/Split.js -// Copyright (c) 2017 Nathan Cahill; Licensed MIT - -(function(global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - ? (module.exports = factory()) - : typeof define === 'function' && define.amd - ? define(factory) - : (global.Split = factory()); -})(this, function() { - 'use strict'; - // The programming goals of Split.js are to deliver readable, understandable and - // maintainable code, while at the same time manually optimizing for tiny minified file size, - // browser compatibility without additional requirements, graceful fallback (IE8 is supported) - // and very few assumptions about the user's page layout. - var global = window; - var document = global.document; - - // Save a couple long function names that are used frequently. - // This optimization saves around 400 bytes. - var addEventListener = 'addEventListener'; - var removeEventListener = 'removeEventListener'; - var getBoundingClientRect = 'getBoundingClientRect'; - var NOOP = function() { - return false; - }; - - // Figure out if we're in IE8 or not. IE8 will still render correctly, - // but will be static instead of draggable. - var isIE8 = global.attachEvent && !global[addEventListener]; - - // This library only needs two helper functions: - // - // The first determines which prefixes of CSS calc we need. - // We only need to do this once on startup, when this anonymous function is called. - // - // Tests -webkit, -moz and -o prefixes. Modified from StackOverflow: - // http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167 - var calc = - ['', '-webkit-', '-moz-', '-o-'] - .filter(function(prefix) { - var el = document.createElement('div'); - el.style.cssText = 'width:' + prefix + 'calc(9px)'; - - return !!el.style.length; - }) - .shift() + 'calc'; - - // The second helper function allows elements and string selectors to be used - // interchangeably. In either case an element is returned. This allows us to - // do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`. - var elementOrSelector = function(el) { - if (typeof el === 'string' || el instanceof String) { - return document.querySelector(el); - } - - return el; - }; - - // The main function to initialize a split. Split.js thinks about each pair - // of elements as an independant pair. Dragging the gutter between two elements - // only changes the dimensions of elements in that pair. This is key to understanding - // how the following functions operate, since each function is bound to a pair. - // - // A pair object is shaped like this: - // - // { - // a: DOM element, - // b: DOM element, - // aMin: Number, - // bMin: Number, - // dragging: Boolean, - // parent: DOM element, - // isFirst: Boolean, - // isLast: Boolean, - // direction: 'horizontal' | 'vertical' - // } - // - // The basic sequence: - // - // 1. Set defaults to something sane. `options` doesn't have to be passed at all. - // 2. Initialize a bunch of strings based on the direction we're splitting. - // A lot of the behavior in the rest of the library is paramatized down to - // rely on CSS strings and classes. - // 3. Define the dragging helper functions, and a few helpers to go with them. - // 4. Loop through the elements while pairing them off. Every pair gets an - // `pair` object, a gutter, and special isFirst/isLast properties. - // 5. Actually size the pair elements, insert gutters and attach event listeners. - var Split = function(ids, options) { - if (options === void 0) options = {}; - - var dimension; - var clientDimension; - var clientAxis; - var position; - var paddingA; - var paddingB; - var elements; - - // All DOM elements in the split should have a common parent. We can grab - // the first elements parent and hope users read the docs because the - // behavior will be whacky otherwise. - var parent = elementOrSelector(ids[0]).parentNode; - var parentFlexDirection = global.getComputedStyle(parent).flexDirection; - - // Set default options.sizes to equal percentages of the parent element. - var sizes = - options.sizes || - ids.map(function() { - return 100 / ids.length; - }); - - // Standardize minSize to an array if it isn't already. This allows minSize - // to be passed as a number. - var minSize = options.minSize !== undefined ? options.minSize : 100; - var minSizes = Array.isArray(minSize) - ? minSize - : ids.map(function() { - return minSize; - }); - var gutterSize = options.gutterSize !== undefined ? options.gutterSize : 10; - var snapOffset = options.snapOffset !== undefined ? options.snapOffset : 30; - var direction = options.direction || 'horizontal'; - var cursor = - options.cursor || - (direction === 'horizontal' ? 'ew-resize' : 'ns-resize'); - var gutter = - options.gutter || - function(i, gutterDirection) { +/*! Split.js - v1.5.11 */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Split = factory()); +}(this, (function () { 'use strict'; + + // The programming goals of Split.js are to deliver readable, understandable and + // maintainable code, while at the same time manually optimizing for tiny minified file size, + // browser compatibility without additional requirements, graceful fallback (IE8 is supported) + // and very few assumptions about the user's page layout. + var global = window; + var document = global.document; + + // Save a couple long function names that are used frequently. + // This optimization saves around 400 bytes. + var addEventListener = 'addEventListener'; + var removeEventListener = 'removeEventListener'; + var getBoundingClientRect = 'getBoundingClientRect'; + var gutterStartDragging = '_a'; + var aGutterSize = '_b'; + var bGutterSize = '_c'; + var HORIZONTAL = 'horizontal'; + var NOOP = function () { return false; }; + + // Figure out if we're in IE8 or not. IE8 will still render correctly, + // but will be static instead of draggable. + var isIE8 = global.attachEvent && !global[addEventListener]; + + // Helper function determines which prefixes of CSS calc we need. + // We only need to do this once on startup, when this anonymous function is called. + // + // Tests -webkit, -moz and -o prefixes. Modified from StackOverflow: + // http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167 + var calc = (['', '-webkit-', '-moz-', '-o-'] + .filter(function (prefix) { + var el = document.createElement('div'); + el.style.cssText = "width:" + prefix + "calc(9px)"; + + return !!el.style.length + }) + .shift()) + "calc"; + + // Helper function checks if its argument is a string-like type + var isString = function (v) { return typeof v === 'string' || v instanceof String; }; + + // Helper function allows elements and string selectors to be used + // interchangeably. In either case an element is returned. This allows us to + // do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`. + var elementOrSelector = function (el) { + if (isString(el)) { + var ele = document.querySelector(el); + if (!ele) { + throw new Error(("Selector " + el + " did not match a DOM element")) + } + return ele + } + + return el + }; + + // Helper function gets a property from the properties object, with a default fallback + var getOption = function (options, propName, def) { + var value = options[propName]; + if (value !== undefined) { + return value + } + return def + }; + + var getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) { + if (isFirst) { + if (gutterAlign === 'end') { + return 0 + } + if (gutterAlign === 'center') { + return gutterSize / 2 + } + } else if (isLast) { + if (gutterAlign === 'start') { + return 0 + } + if (gutterAlign === 'center') { + return gutterSize / 2 + } + } + + return gutterSize + }; + + // Default options + var defaultGutterFn = function (i, gutterDirection) { var gut = document.createElement('div'); - gut.className = 'gutter gutter-' + gutterDirection; - return gut; - }; - var elementStyle = - options.elementStyle || - function(dim, size, gutSize) { + gut.className = "gutter gutter-" + gutterDirection; + return gut + }; + + var defaultElementStyleFn = function (dim, size, gutSize) { var style = {}; - if (typeof size !== 'string' && !(size instanceof String)) { - if (!isIE8) { - style[dim] = calc + '(' + size + '% - ' + gutSize + 'px)'; - } else { - style[dim] = size + '%'; - } + if (!isString(size)) { + if (!isIE8) { + style[dim] = calc + "(" + size + "% - " + gutSize + "px)"; + } else { + style[dim] = size + "%"; + } } else { - style[dim] = size; + style[dim] = size; } - return style; - }; - var gutterStyle = - options.gutterStyle || - function(dim, gutSize) { - return (obj = {}), (obj[dim] = gutSize + 'px'), obj; + return style + }; + + var defaultGutterStyleFn = function (dim, gutSize) { var obj; - }; - // 2. Initialize a bunch of strings based on the direction we're splitting. - // A lot of the behavior in the rest of the library is paramatized down to - // rely on CSS strings and classes. - if (direction === 'horizontal') { - dimension = 'width'; - clientDimension = 'clientWidth'; - clientAxis = 'clientX'; - position = 'left'; - paddingA = 'paddingLeft'; - paddingB = 'paddingRight'; - } else if (direction === 'vertical') { - dimension = 'height'; - clientDimension = 'clientHeight'; - clientAxis = 'clientY'; - position = 'top'; - paddingA = 'paddingTop'; - paddingB = 'paddingBottom'; - } + return (( obj = {}, obj[dim] = (gutSize + "px"), obj )); + }; - // 3. Define the dragging helper functions, and a few helpers to go with them. - // Each helper is bound to a pair object that contains it's metadata. This - // also makes it easy to store references to listeners that that will be - // added and removed. - // - // Even though there are no other functions contained in them, aliasing - // this to self saves 50 bytes or so since it's used so frequently. - // - // The pair object saves metadata like dragging state, position and - // event listener references. - - function setElementSize(el, size, gutSize) { - // Split.js allows setting sizes via numbers (ideally), or if you must, - // by string, like '300px'. This is less than ideal, because it breaks - // the fluid layout that `calc(% - px)` provides. You're on your own if you do that, - // make sure you calculate the gutter size by hand. - var style = elementStyle(dimension, size, gutSize); - - // eslint-disable-next-line no-param-reassign - Object.keys(style).forEach(function(prop) { - return (el.style[prop] = style[prop]); - }); - } - - function setGutterSize(gutterElement, gutSize) { - var style = gutterStyle(dimension, gutSize); - - // eslint-disable-next-line no-param-reassign - Object.keys(style).forEach(function(prop) { - return (gutterElement.style[prop] = style[prop]); - }); - } - - // Actually adjust the size of elements `a` and `b` to `offset` while dragging. - // calc is used to allow calc(percentage + gutterpx) on the whole split instance, - // which allows the viewport to be resized without additional logic. - // Element a's size is the same as offset. b's size is total size - a size. - // Both sizes are calculated from the initial parent percentage, - // then the gutter size is subtracted. - function adjust(offset) { - var a = elements[this.a]; - var b = elements[this.b]; - var percentage = a.size + b.size; - - a.size = (offset / this.size) * percentage; - b.size = percentage - (offset / this.size) * percentage; - - setElementSize(a.element, a.size, this.aGutterSize); - setElementSize(b.element, b.size, this.bGutterSize); - } - - // drag, where all the magic happens. The logic is really quite simple: + // The main function to initialize a split. Split.js thinks about each pair + // of elements as an independant pair. Dragging the gutter between two elements + // only changes the dimensions of elements in that pair. This is key to understanding + // how the following functions operate, since each function is bound to a pair. // - // 1. Ignore if the pair is not dragging. - // 2. Get the offset of the event. - // 3. Snap offset to min if within snappable range (within min + snapOffset). - // 4. Actually adjust each element in the pair to offset. + // A pair object is shaped like this: // - // --------------------------------------------------------------------- - // | | <- a.minSize || b.minSize -> | | - // | | | <- this.snapOffset || this.snapOffset -> | | | - // | | | || | | | - // | | | || | | | - // --------------------------------------------------------------------- - // | <- this.start this.size -> | - function drag(e) { - var offset; - - if (!this.dragging) { - return; - } - - // Get the offset of the event from the first side of the - // pair `this.start`. Supports touch events, but not multitouch, so only the first - // finger `touches[0]` is counted. - if ('touches' in e) { - offset = e.touches[0][clientAxis] - this.start; - } else { - offset = e[clientAxis] - this.start; - } - - // If within snapOffset of min or max, set offset to min or max. - // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both. - // Include the appropriate gutter sizes to prevent overflows. - if (offset <= elements[this.a].minSize + snapOffset + this.aGutterSize) { - offset = elements[this.a].minSize + this.aGutterSize; - } else if ( - offset >= - this.size - (elements[this.b].minSize + snapOffset + this.bGutterSize) - ) { - offset = this.size - (elements[this.b].minSize + this.bGutterSize); - } - - // Actually adjust the size. - adjust.call(this, offset); - - // Call the drag callback continously. Don't do anything too intensive - // in this callback. - if (options.onDrag) { - options.onDrag(); - } - } - - // Cache some important sizes when drag starts, so we don't have to do that - // continously: + // { + // a: DOM element, + // b: DOM element, + // aMin: Number, + // bMin: Number, + // dragging: Boolean, + // parent: DOM element, + // direction: 'horizontal' | 'vertical' + // } // - // `size`: The total size of the pair. First + second + first gutter + second gutter. - // `start`: The leading side of the first element. + // The basic sequence: // - // ------------------------------------------------ - // | aGutterSize -> ||| | - // | ||| | - // | ||| | - // | ||| <- bGutterSize | - // ------------------------------------------------ - // | <- start size -> | - function calculateSizes() { - // Figure out the parent size minus padding. - var a = elements[this.a].element; - var b = elements[this.b].element; - - this.size = - a[getBoundingClientRect]()[dimension] + - b[getBoundingClientRect]()[dimension] + - this.aGutterSize + - this.bGutterSize; - this.start = a[getBoundingClientRect]()[position]; - } - - // stopDragging is very similar to startDragging in reverse. - function stopDragging() { - var self = this; - var a = elements[self.a].element; - var b = elements[self.b].element; - - if (self.dragging && options.onDragEnd) { - options.onDragEnd(); - } - - self.dragging = false; - - // Remove the stored event listeners. This is why we store them. - global[removeEventListener]('mouseup', self.stop); - global[removeEventListener]('touchend', self.stop); - global[removeEventListener]('touchcancel', self.stop); - - self.parent[removeEventListener]('mousemove', self.move); - self.parent[removeEventListener]('touchmove', self.move); - - // Delete them once they are removed. I think this makes a difference - // in memory usage with a lot of splits on one page. But I don't know for sure. - delete self.stop; - delete self.move; - - a[removeEventListener]('selectstart', NOOP); - a[removeEventListener]('dragstart', NOOP); - b[removeEventListener]('selectstart', NOOP); - b[removeEventListener]('dragstart', NOOP); - - a.style.userSelect = ''; - a.style.webkitUserSelect = ''; - a.style.MozUserSelect = ''; - a.style.pointerEvents = ''; - - b.style.userSelect = ''; - b.style.webkitUserSelect = ''; - b.style.MozUserSelect = ''; - b.style.pointerEvents = ''; - - self.gutter.style.cursor = ''; - self.parent.style.cursor = ''; - } - - // startDragging calls `calculateSizes` to store the inital size in the pair object. - // It also adds event listeners for mouse/touch events, - // and prevents selection while dragging so avoid the selecting text. - function startDragging(e) { - // Alias frequently used variables to save space. 200 bytes. - var self = this; - var a = elements[self.a].element; - var b = elements[self.b].element; - - // Call the onDragStart callback. - if (!self.dragging && options.onDragStart) { - options.onDragStart(); - } - - // Don't actually drag the element. We emulate that in the drag function. - e.preventDefault(); - - // Set the dragging property of the pair object. - self.dragging = true; - - // Create two event listeners bound to the same pair object and store - // them in the pair object. - self.move = drag.bind(self); - self.stop = stopDragging.bind(self); - - // All the binding. `window` gets the stop events in case we drag out of the elements. - global[addEventListener]('mouseup', self.stop); - global[addEventListener]('touchend', self.stop); - global[addEventListener]('touchcancel', self.stop); - - self.parent[addEventListener]('mousemove', self.move); - self.parent[addEventListener]('touchmove', self.move); - - // Disable selection. Disable! - a[addEventListener]('selectstart', NOOP); - a[addEventListener]('dragstart', NOOP); - b[addEventListener]('selectstart', NOOP); - b[addEventListener]('dragstart', NOOP); - - a.style.userSelect = 'none'; - a.style.webkitUserSelect = 'none'; - a.style.MozUserSelect = 'none'; - a.style.pointerEvents = 'none'; - - b.style.userSelect = 'none'; - b.style.webkitUserSelect = 'none'; - b.style.MozUserSelect = 'none'; - b.style.pointerEvents = 'none'; - - // Set the cursor, both on the gutter and the parent element. - // Doing only a, b and gutter causes flickering. - self.gutter.style.cursor = cursor; - self.parent.style.cursor = cursor; - - // Cache the initial sizes of the pair. - calculateSizes.call(self); - } - - // 5. Create pair and element objects. Each pair has an index reference to - // elements `a` and `b` of the pair (first and second elements). - // Loop through the elements while pairing them off. Every pair gets a - // `pair` object, a gutter, and isFirst/isLast properties. - // - // Basic logic: - // - // - Starting with the second element `i > 0`, create `pair` objects with - // `a = i - 1` and `b = i` - // - Set gutter sizes based on the _pair_ being first/last. The first and last - // pair have gutterSize / 2, since they only have one half gutter, and not two. - // - Create gutter elements and add event listeners. - // - Set the size of the elements, minus the gutter sizes. - // - // ----------------------------------------------------------------------- - // | i=0 | i=1 | i=2 | i=3 | - // | | isFirst | | isLast | - // | pair 0 pair 1 pair 2 | - // | | | | | - // ----------------------------------------------------------------------- - var pairs = []; - elements = ids.map(function(id, i) { - // Create the element object. - var element = { - element: elementOrSelector(id), - size: sizes[i], - minSize: minSizes[i] - }; - - var pair; - - if (i > 0) { - // Create the pair object with it's metadata. - pair = { - a: i - 1, - b: i, - dragging: false, - isFirst: i === 1, - isLast: i === ids.length - 1, - direction: direction, - parent: parent - }; - - // For first and last pairs, first and last gutter width is half. - pair.aGutterSize = gutterSize; - pair.bGutterSize = gutterSize; - - if (pair.isFirst) { - pair.aGutterSize = gutterSize / 2; + // 1. Set defaults to something sane. `options` doesn't have to be passed at all. + // 2. Initialize a bunch of strings based on the direction we're splitting. + // A lot of the behavior in the rest of the library is paramatized down to + // rely on CSS strings and classes. + // 3. Define the dragging helper functions, and a few helpers to go with them. + // 4. Loop through the elements while pairing them off. Every pair gets an + // `pair` object and a gutter. + // 5. Actually size the pair elements, insert gutters and attach event listeners. + var Split = function (idsOption, options) { + if ( options === void 0 ) options = {}; + + var ids = idsOption; + var dimension; + var clientAxis; + var position; + var positionEnd; + var clientSize; + var elements; + + // Allow HTMLCollection to be used as an argument when supported + if (Array.from) { + ids = Array.from(ids); + } + + // All DOM elements in the split should have a common parent. We can grab + // the first elements parent and hope users read the docs because the + // behavior will be whacky otherwise. + var firstElement = elementOrSelector(ids[0]); + var parent = firstElement.parentNode; + var parentStyle = getComputedStyle ? getComputedStyle(parent) : null; + var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null; + + // Set default options.sizes to equal percentages of the parent element. + var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; }); + + // Standardize minSize to an array if it isn't already. This allows minSize + // to be passed as a number. + var minSize = getOption(options, 'minSize', 100); + var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; }); + + // Get other options + var expandToMin = getOption(options, 'expandToMin', false); + var gutterSize = getOption(options, 'gutterSize', 10); + var gutterAlign = getOption(options, 'gutterAlign', 'center'); + var snapOffset = getOption(options, 'snapOffset', 30); + var dragInterval = getOption(options, 'dragInterval', 1); + var direction = getOption(options, 'direction', HORIZONTAL); + var cursor = getOption( + options, + 'cursor', + direction === HORIZONTAL ? 'col-resize' : 'row-resize' + ); + var gutter = getOption(options, 'gutter', defaultGutterFn); + var elementStyle = getOption( + options, + 'elementStyle', + defaultElementStyleFn + ); + var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn); + + // 2. Initialize a bunch of strings based on the direction we're splitting. + // A lot of the behavior in the rest of the library is paramatized down to + // rely on CSS strings and classes. + if (direction === HORIZONTAL) { + dimension = 'width'; + clientAxis = 'clientX'; + position = 'left'; + positionEnd = 'right'; + clientSize = 'clientWidth'; + } else if (direction === 'vertical') { + dimension = 'height'; + clientAxis = 'clientY'; + position = 'top'; + positionEnd = 'bottom'; + clientSize = 'clientHeight'; + } + + // 3. Define the dragging helper functions, and a few helpers to go with them. + // Each helper is bound to a pair object that contains its metadata. This + // also makes it easy to store references to listeners that that will be + // added and removed. + // + // Even though there are no other functions contained in them, aliasing + // this to self saves 50 bytes or so since it's used so frequently. + // + // The pair object saves metadata like dragging state, position and + // event listener references. + + function setElementSize(el, size, gutSize, i) { + // Split.js allows setting sizes via numbers (ideally), or if you must, + // by string, like '300px'. This is less than ideal, because it breaks + // the fluid layout that `calc(% - px)` provides. You're on your own if you do that, + // make sure you calculate the gutter size by hand. + var style = elementStyle(dimension, size, gutSize, i); + + Object.keys(style).forEach(function (prop) { + // eslint-disable-next-line no-param-reassign + el.style[prop] = style[prop]; + }); + } + + function setGutterSize(gutterElement, gutSize, i) { + var style = gutterStyle(dimension, gutSize, i); + + Object.keys(style).forEach(function (prop) { + // eslint-disable-next-line no-param-reassign + gutterElement.style[prop] = style[prop]; + }); } - if (pair.isLast) { - pair.bGutterSize = gutterSize / 2; + function getSizes() { + return elements.map(function (element) { return element.size; }) } - // if the parent has a reverse flex-direction, switch the pair elements. - if ( - parentFlexDirection === 'row-reverse' || - parentFlexDirection === 'column-reverse' - ) { - var temp = pair.a; - pair.a = pair.b; - pair.b = temp; + // Supports touch events, but not multitouch, so only the first + // finger `touches[0]` is counted. + function getMousePosition(e) { + if ('touches' in e) { return e.touches[0][clientAxis] } + return e[clientAxis] } - } - - // Determine the size of the current element. IE8 is supported by - // staticly assigning sizes without draggable gutters. Assigns a string - // to `size`. - // - // IE9 and above - if (!isIE8) { - // Create gutter elements for each pair. - if (i > 0) { - var gutterElement = gutter(i, direction); - setGutterSize(gutterElement, gutterSize); - - gutterElement[addEventListener]( - 'mousedown', - startDragging.bind(pair) - ); - gutterElement[addEventListener]( - 'touchstart', - startDragging.bind(pair) - ); - - parent.insertBefore(gutterElement, element.element); - - pair.gutter = gutterElement; + + // Actually adjust the size of elements `a` and `b` to `offset` while dragging. + // calc is used to allow calc(percentage + gutterpx) on the whole split instance, + // which allows the viewport to be resized without additional logic. + // Element a's size is the same as offset. b's size is total size - a size. + // Both sizes are calculated from the initial parent percentage, + // then the gutter size is subtracted. + function adjust(offset) { + var a = elements[this.a]; + var b = elements[this.b]; + var percentage = a.size + b.size; + + a.size = (offset / this.size) * percentage; + b.size = percentage - (offset / this.size) * percentage; + + setElementSize(a.element, a.size, this[aGutterSize], a.i); + setElementSize(b.element, b.size, this[bGutterSize], b.i); + } + + // drag, where all the magic happens. The logic is really quite simple: + // + // 1. Ignore if the pair is not dragging. + // 2. Get the offset of the event. + // 3. Snap offset to min if within snappable range (within min + snapOffset). + // 4. Actually adjust each element in the pair to offset. + // + // --------------------------------------------------------------------- + // | | <- a.minSize || b.minSize -> | | + // | | | <- this.snapOffset || this.snapOffset -> | | | + // | | | || | | | + // | | | || | | | + // --------------------------------------------------------------------- + // | <- this.start this.size -> | + function drag(e) { + var offset; + var a = elements[this.a]; + var b = elements[this.b]; + + if (!this.dragging) { return } + + // Get the offset of the event from the first side of the + // pair `this.start`. Then offset by the initial position of the + // mouse compared to the gutter size. + offset = + getMousePosition(e) - + this.start + + (this[aGutterSize] - this.dragOffset); + + if (dragInterval > 1) { + offset = Math.round(offset / dragInterval) * dragInterval; + } + + // If within snapOffset of min or max, set offset to min or max. + // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both. + // Include the appropriate gutter sizes to prevent overflows. + if (offset <= a.minSize + snapOffset + this[aGutterSize]) { + offset = a.minSize + this[aGutterSize]; + } else if ( + offset >= + this.size - (b.minSize + snapOffset + this[bGutterSize]) + ) { + offset = this.size - (b.minSize + this[bGutterSize]); + } + + // Actually adjust the size. + adjust.call(this, offset); + + // Call the drag callback continously. Don't do anything too intensive + // in this callback. + getOption(options, 'onDrag', NOOP)(); + } + + // Cache some important sizes when drag starts, so we don't have to do that + // continously: + // + // `size`: The total size of the pair. First + second + first gutter + second gutter. + // `start`: The leading side of the first element. + // + // ------------------------------------------------ + // | aGutterSize -> ||| | + // | ||| | + // | ||| | + // | ||| <- bGutterSize | + // ------------------------------------------------ + // | <- start size -> | + function calculateSizes() { + // Figure out the parent size minus padding. + var a = elements[this.a].element; + var b = elements[this.b].element; + + var aBounds = a[getBoundingClientRect](); + var bBounds = b[getBoundingClientRect](); + + this.size = + aBounds[dimension] + + bBounds[dimension] + + this[aGutterSize] + + this[bGutterSize]; + this.start = aBounds[position]; + this.end = aBounds[positionEnd]; + } + + function innerSize(element) { + // Return nothing if getComputedStyle is not supported (< IE9) + // Or if parent element has no layout yet + if (!getComputedStyle) { return null } + + var computedStyle = getComputedStyle(element); + + if (!computedStyle) { return null } + + var size = element[clientSize]; + + if (size === 0) { return null } + + if (direction === HORIZONTAL) { + size -= + parseFloat(computedStyle.paddingLeft) + + parseFloat(computedStyle.paddingRight); + } else { + size -= + parseFloat(computedStyle.paddingTop) + + parseFloat(computedStyle.paddingBottom); + } + + return size + } + + // When specifying percentage sizes that are less than the computed + // size of the element minus the gutter, the lesser percentages must be increased + // (and decreased from the other elements) to make space for the pixels + // subtracted by the gutters. + function trimToMin(sizesToTrim) { + // Try to get inner size of parent element. + // If it's no supported, return original sizes. + var parentSize = innerSize(parent); + if (parentSize === null) { + return sizesToTrim + } + + if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) { + return sizesToTrim + } + + // Keep track of the excess pixels, the amount of pixels over the desired percentage + // Also keep track of the elements with pixels to spare, to decrease after if needed + var excessPixels = 0; + var toSpare = []; + + var pixelSizes = sizesToTrim.map(function (size, i) { + // Convert requested percentages to pixel sizes + var pixelSize = (parentSize * size) / 100; + var elementGutterSize = getGutterSize( + gutterSize, + i === 0, + i === sizesToTrim.length - 1, + gutterAlign + ); + var elementMinSize = minSizes[i] + elementGutterSize; + + // If element is too smal, increase excess pixels by the difference + // and mark that it has no pixels to spare + if (pixelSize < elementMinSize) { + excessPixels += elementMinSize - pixelSize; + toSpare.push(0); + return elementMinSize + } + + // Otherwise, mark the pixels it has to spare and return it's original size + toSpare.push(pixelSize - elementMinSize); + return pixelSize + }); + + // If nothing was adjusted, return the original sizes + if (excessPixels === 0) { + return sizesToTrim + } + + return pixelSizes.map(function (pixelSize, i) { + var newPixelSize = pixelSize; + + // While there's still pixels to take, and there's enough pixels to spare, + // take as many as possible up to the total excess pixels + if (excessPixels > 0 && toSpare[i] - excessPixels > 0) { + var takenPixels = Math.min( + excessPixels, + toSpare[i] - excessPixels + ); + + // Subtract the amount taken for the next iteration + excessPixels -= takenPixels; + newPixelSize = pixelSize - takenPixels; + } + + // Return the pixel size adjusted as a percentage + return (newPixelSize / parentSize) * 100 + }) + } + + // stopDragging is very similar to startDragging in reverse. + function stopDragging() { + var self = this; + var a = elements[self.a].element; + var b = elements[self.b].element; + + if (self.dragging) { + getOption(options, 'onDragEnd', NOOP)(getSizes()); + } + + self.dragging = false; + + // Remove the stored event listeners. This is why we store them. + global[removeEventListener]('mouseup', self.stop); + global[removeEventListener]('touchend', self.stop); + global[removeEventListener]('touchcancel', self.stop); + global[removeEventListener]('mousemove', self.move); + global[removeEventListener]('touchmove', self.move); + + // Clear bound function references + self.stop = null; + self.move = null; + + a[removeEventListener]('selectstart', NOOP); + a[removeEventListener]('dragstart', NOOP); + b[removeEventListener]('selectstart', NOOP); + b[removeEventListener]('dragstart', NOOP); + + a.style.userSelect = ''; + a.style.webkitUserSelect = ''; + a.style.MozUserSelect = ''; + a.style.pointerEvents = ''; + + b.style.userSelect = ''; + b.style.webkitUserSelect = ''; + b.style.MozUserSelect = ''; + b.style.pointerEvents = ''; + + self.gutter.style.cursor = ''; + self.parent.style.cursor = ''; + document.body.style.cursor = ''; } - } - - // Set the element size to our determined size. - // Half-size gutters for first and last elements. - if (i === 0 || i === ids.length - 1) { - setElementSize(element.element, element.size, gutterSize / 2); - } else { - setElementSize(element.element, element.size, gutterSize); - } - - var computedSize = element.element[getBoundingClientRect]()[dimension]; - - if (computedSize < element.minSize) { - element.minSize = computedSize; - } - - // After the first iteration, and we have a pair object, append it to the - // list of pairs. - if (i > 0) { - pairs.push(pair); - } - - return element; - }); - - function setSizes(newSizes) { - newSizes.forEach(function(newSize, i) { - if (i > 0) { - var pair = pairs[i - 1]; - var a = elements[pair.a]; - var b = elements[pair.b]; - - a.size = newSizes[i - 1]; - b.size = newSize; - - setElementSize(a.element, a.size, pair.aGutterSize); - setElementSize(b.element, b.size, pair.bGutterSize); + + // startDragging calls `calculateSizes` to store the inital size in the pair object. + // It also adds event listeners for mouse/touch events, + // and prevents selection while dragging so avoid the selecting text. + function startDragging(e) { + // Right-clicking can't start dragging. + if ('button' in e && e.button !== 0) { + return + } + + // Alias frequently used variables to save space. 200 bytes. + var self = this; + var a = elements[self.a].element; + var b = elements[self.b].element; + + // Call the onDragStart callback. + if (!self.dragging) { + getOption(options, 'onDragStart', NOOP)(getSizes()); + } + + // Don't actually drag the element. We emulate that in the drag function. + e.preventDefault(); + + // Set the dragging property of the pair object. + self.dragging = true; + + // Create two event listeners bound to the same pair object and store + // them in the pair object. + self.move = drag.bind(self); + self.stop = stopDragging.bind(self); + + // All the binding. `window` gets the stop events in case we drag out of the elements. + global[addEventListener]('mouseup', self.stop); + global[addEventListener]('touchend', self.stop); + global[addEventListener]('touchcancel', self.stop); + global[addEventListener]('mousemove', self.move); + global[addEventListener]('touchmove', self.move); + + // Disable selection. Disable! + a[addEventListener]('selectstart', NOOP); + a[addEventListener]('dragstart', NOOP); + b[addEventListener]('selectstart', NOOP); + b[addEventListener]('dragstart', NOOP); + + a.style.userSelect = 'none'; + a.style.webkitUserSelect = 'none'; + a.style.MozUserSelect = 'none'; + a.style.pointerEvents = 'none'; + + b.style.userSelect = 'none'; + b.style.webkitUserSelect = 'none'; + b.style.MozUserSelect = 'none'; + b.style.pointerEvents = 'none'; + + // Set the cursor at multiple levels + self.gutter.style.cursor = cursor; + self.parent.style.cursor = cursor; + document.body.style.cursor = cursor; + + // Cache the initial sizes of the pair. + calculateSizes.call(self); + + // Determine the position of the mouse compared to the gutter + self.dragOffset = getMousePosition(e) - self.end; } - }); - } - - function destroy() { - pairs.forEach(function(pair) { - pair.parent.removeChild(pair.gutter); - elements[pair.a].element.style[dimension] = ''; - elements[pair.b].element.style[dimension] = ''; - }); - } - - if (isIE8) { - return { - setSizes: setSizes, - destroy: destroy - }; - } - - return { - setSizes: setSizes, - getSizes: function getSizes() { - return elements.map(function(element) { - return element.size; + + // adjust sizes to ensure percentage is within min size and gutter. + sizes = trimToMin(sizes); + + // 5. Create pair and element objects. Each pair has an index reference to + // elements `a` and `b` of the pair (first and second elements). + // Loop through the elements while pairing them off. Every pair gets a + // `pair` object and a gutter. + // + // Basic logic: + // + // - Starting with the second element `i > 0`, create `pair` objects with + // `a = i - 1` and `b = i` + // - Set gutter sizes based on the _pair_ being first/last. The first and last + // pair have gutterSize / 2, since they only have one half gutter, and not two. + // - Create gutter elements and add event listeners. + // - Set the size of the elements, minus the gutter sizes. + // + // ----------------------------------------------------------------------- + // | i=0 | i=1 | i=2 | i=3 | + // | | | | | + // | pair 0 pair 1 pair 2 | + // | | | | | + // ----------------------------------------------------------------------- + var pairs = []; + elements = ids.map(function (id, i) { + // Create the element object. + var element = { + element: elementOrSelector(id), + size: sizes[i], + minSize: minSizes[i], + i: i, + }; + + var pair; + + if (i > 0) { + // Create the pair object with its metadata. + pair = { + a: i - 1, + b: i, + dragging: false, + direction: direction, + parent: parent, + }; + + pair[aGutterSize] = getGutterSize( + gutterSize, + i - 1 === 0, + false, + gutterAlign + ); + pair[bGutterSize] = getGutterSize( + gutterSize, + false, + i === ids.length - 1, + gutterAlign + ); + + // if the parent has a reverse flex-direction, switch the pair elements. + if ( + parentFlexDirection === 'row-reverse' || + parentFlexDirection === 'column-reverse' + ) { + var temp = pair.a; + pair.a = pair.b; + pair.b = temp; + } + } + + // Determine the size of the current element. IE8 is supported by + // staticly assigning sizes without draggable gutters. Assigns a string + // to `size`. + // + // IE9 and above + if (!isIE8) { + // Create gutter elements for each pair. + if (i > 0) { + var gutterElement = gutter(i, direction, element.element); + setGutterSize(gutterElement, gutterSize, i); + + // Save bound event listener for removal later + pair[gutterStartDragging] = startDragging.bind(pair); + + // Attach bound event listener + gutterElement[addEventListener]( + 'mousedown', + pair[gutterStartDragging] + ); + gutterElement[addEventListener]( + 'touchstart', + pair[gutterStartDragging] + ); + + parent.insertBefore(gutterElement, element.element); + + pair.gutter = gutterElement; + } + } + + setElementSize( + element.element, + element.size, + getGutterSize( + gutterSize, + i === 0, + i === ids.length - 1, + gutterAlign + ), + i + ); + + // After the first iteration, and we have a pair object, append it to the + // list of pairs. + if (i > 0) { + pairs.push(pair); + } + + return element }); - }, - collapse: function collapse(i) { - if (i === pairs.length) { - var pair = pairs[i - 1]; - calculateSizes.call(pair); + function adjustToMin(element) { + var isLast = element.i === pairs.length; + var pair = isLast ? pairs[element.i - 1] : pairs[element.i]; - if (!isIE8) { - adjust.call(pair, pair.size - pair.bGutterSize); - } - } else { - var pair$1 = pairs[i]; + calculateSizes.call(pair); - calculateSizes.call(pair$1); + var size = isLast + ? pair.size - element.minSize - pair[bGutterSize] + : element.minSize + pair[aGutterSize]; - if (!isIE8) { - adjust.call(pair$1, pair$1.aGutterSize); - } + adjust.call(pair, size); + } + + elements.forEach(function (element) { + var computedSize = element.element[getBoundingClientRect]()[dimension]; + + if (computedSize < element.minSize) { + if (expandToMin) { + adjustToMin(element); + } else { + // eslint-disable-next-line no-param-reassign + element.minSize = computedSize; + } + } + }); + + function setSizes(newSizes) { + var trimmed = trimToMin(newSizes); + trimmed.forEach(function (newSize, i) { + if (i > 0) { + var pair = pairs[i - 1]; + + var a = elements[pair.a]; + var b = elements[pair.b]; + + a.size = trimmed[i - 1]; + b.size = newSize; + + setElementSize(a.element, a.size, pair[aGutterSize], a.i); + setElementSize(b.element, b.size, pair[bGutterSize], b.i); + } + }); + } + + function destroy(preserveStyles, preserveGutter) { + pairs.forEach(function (pair) { + if (preserveGutter !== true) { + pair.parent.removeChild(pair.gutter); + } else { + pair.gutter[removeEventListener]( + 'mousedown', + pair[gutterStartDragging] + ); + pair.gutter[removeEventListener]( + 'touchstart', + pair[gutterStartDragging] + ); + } + + if (preserveStyles !== true) { + var style = elementStyle( + dimension, + pair.a.size, + pair[aGutterSize] + ); + + Object.keys(style).forEach(function (prop) { + elements[pair.a].element.style[prop] = ''; + elements[pair.b].element.style[prop] = ''; + }); + } + }); + } + + if (isIE8) { + return { + setSizes: setSizes, + destroy: destroy, + } + } + + return { + setSizes: setSizes, + getSizes: getSizes, + collapse: function collapse(i) { + adjustToMin(elements[i]); + }, + destroy: destroy, + parent: parent, + pairs: pairs, } - }, - destroy: destroy }; - }; - return Split; -}); + return Split; + +}))); diff --git a/src/default_theme/assets/style.css b/src/default_theme/assets/style.css index 5265ea1fa..0618f4376 100644 --- a/src/default_theme/assets/style.css +++ b/src/default_theme/assets/style.css @@ -26,7 +26,7 @@ h4 { } a { - color: #1184CE; + color: #1184ce; text-decoration: none; } @@ -51,12 +51,12 @@ a:hover { } section:target h3 { - font-weight:700; + font-weight: 700; } .documentation td, .documentation th { - padding: .25rem .25rem; + padding: 0.25rem 0.25rem; } h1:hover .anchorjs-link, @@ -82,13 +82,16 @@ h4:hover .anchorjs-link { } } -.pre, pre, code, .code { - font-family: Source Code Pro,Menlo,Consolas,Liberation Mono,monospace; +.pre, +pre, +code, +.code { + font-family: Source Code Pro, Menlo, Consolas, Liberation Mono, monospace; font-size: 14px; } .fill-light { - background: #F9F9F9; + background: #f9f9f9; } .width2 { @@ -100,10 +103,10 @@ h4:hover .anchorjs-link { display: block; width: 100%; height: 2rem; - padding: .5rem; + padding: 0.5rem; margin-bottom: 1rem; border: 1px solid #ccc; - font-size: .875rem; + font-size: 0.875rem; border-radius: 3px; box-sizing: border-box; } @@ -115,15 +118,19 @@ table { .prose table th, .prose table td { text-align: left; - padding:8px; - border:1px solid #ddd; + padding: 8px; + border: 1px solid #ddd; } -.prose table th:nth-child(1) { border-right: none; } -.prose table th:nth-child(2) { border-left: none; } +.prose table th:nth-child(1) { + border-right: none; +} +.prose table th:nth-child(2) { + border-left: none; +} .prose table { - border:1px solid #ddd; + border: 1px solid #ddd; } .prose-big { diff --git a/src/default_theme/index._ b/src/default_theme/index._ index 896d412a4..ead8c2dfc 100644 --- a/src/default_theme/index._ +++ b/src/default_theme/index._ @@ -1,14 +1,14 @@ - + - + <%- config['project-name'] %> <%- config['project-version'] %> | Documentation<% if (config['project-description']) { %> '><% } %> - - - - <% if (config['favicon']) { %> + + + + <% if (config['favicon']) { %> ' rel='icon' ><% } %> @@ -21,6 +21,9 @@ placeholder='Filter' id='filter-input' class='col12 block input' + spellcheck='false' + autocapitalize='off' + autocorrect='off' type='text' />
      @@ -95,7 +98,7 @@
    <% docs.forEach(function(s) { %> - <% if (s.kind === 'note') { %> + <% if (s.kind === 'note' && !s.children) { %>
    <%=renderNote({ note: s })%>
    <% } else { %> <%= renderSection({ diff --git a/src/default_theme/index.js b/src/default_theme/index.js index 5134b79a3..19eace3be 100644 --- a/src/default_theme/index.js +++ b/src/default_theme/index.js @@ -1,29 +1,55 @@ -var fs = require('fs'), - path = require('path'), - File = require('vinyl'), - vfs = require('vinyl-fs'), - _ = require('lodash'), - concat = require('concat-stream'), - GithubSlugger = require('github-slugger'), - createFormatters = require('../').util.createFormatters, - LinkerStack = require('../').util.LinkerStack, - hljs = require('highlight.js'); +import fs from 'fs/promises'; +import path from 'path'; +import template from 'lodash/template.js'; +import GithubSlugger from 'github-slugger'; +import { util } from '../index.js'; +import hljs from 'highlight.js'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const { LinkerStack, createFormatters } = util; + +async function copyDir(sorce, dest) { + await fs.mkdir(dest, { recursive: true }); + let entries = await fs.readdir(sorce, { withFileTypes: true }); + + for (let entry of entries) { + let srcPath = path.join(sorce, entry.name); + let destPath = path.join(dest, entry.name); + + entry.isDirectory() + ? await copyDir(srcPath, destPath) + : await fs.copyFile(srcPath, destPath); + } +} function isFunction(section) { return ( section.kind === 'function' || (section.kind === 'typedef' && + section.type && section.type.type === 'NameExpression' && section.type.name === 'Function') ); } -module.exports = function(comments, config) { +const slugger = new GithubSlugger(); +const slugs = {}; + +function getSlug(str) { + if (slugs[str] === undefined) { + slugs[str] = slugger.slug(str); + } + return slugs[str]; +} + +export default async function (comments, config) { var linkerStack = new LinkerStack(config).namespaceResolver( comments, - function(namespace) { - var slugger = new GithubSlugger(); - return '#' + slugger.slug(namespace); + function (namespace) { + return '#' + getSlug(namespace); } ); @@ -34,8 +60,7 @@ module.exports = function(comments, config) { var sharedImports = { imports: { slug(str) { - var slugger = new GithubSlugger(); - return slugger.slug(str); + return getSlug(str); }, shortSignature(section) { var prefix = ''; @@ -79,52 +104,39 @@ module.exports = function(comments, config) { if (config.hljs && config.hljs.highlightAuto) { return hljs.highlightAuto(example).value; } - return hljs.highlight('js', example).value; + return hljs.highlight(example, { language: 'js' }).value; } } }; - sharedImports.imports.renderSectionList = _.template( - fs.readFileSync(path.join(__dirname, 'section_list._'), 'utf8'), + sharedImports.imports.renderSectionList = template( + await fs.readFile(path.join(__dirname, 'section_list._'), 'utf8'), sharedImports ); - sharedImports.imports.renderSection = _.template( - fs.readFileSync(path.join(__dirname, 'section._'), 'utf8'), + sharedImports.imports.renderSection = template( + await fs.readFile(path.join(__dirname, 'section._'), 'utf8'), sharedImports ); - sharedImports.imports.renderNote = _.template( - fs.readFileSync(path.join(__dirname, 'note._'), 'utf8'), + sharedImports.imports.renderNote = template( + await fs.readFile(path.join(__dirname, 'note._'), 'utf8'), sharedImports ); - sharedImports.imports.renderParamProperty = _.template( - fs.readFileSync(path.join(__dirname, 'paramProperty._'), 'utf8'), + sharedImports.imports.renderParamProperty = template( + await fs.readFile(path.join(__dirname, 'paramProperty._'), 'utf8'), sharedImports ); - var pageTemplate = _.template( - fs.readFileSync(path.join(__dirname, 'index._'), 'utf8'), + var pageTemplate = template( + await fs.readFile(path.join(__dirname, 'index._'), 'utf8'), sharedImports ); - // push assets into the pipeline as well. - return new Promise(resolve => { - vfs.src([__dirname + '/assets/**'], { base: __dirname }).pipe( - concat(function(files) { - resolve( - files.concat( - new File({ - path: 'index.html', - contents: new Buffer( - pageTemplate({ - docs: comments, - config - }), - 'utf8' - ) - }) - ) - ); - }) - ); - }); -}; + const string = pageTemplate({ docs: comments, config }); + + if (!config.output) { + return string; + } + + await copyDir(__dirname + '/assets/', config.output + '/assets/'); + await fs.writeFile(config.output + '/index.html', string, 'utf8'); +} diff --git a/src/default_theme/note._ b/src/default_theme/note._ index 10b836d5c..cebebc13c 100644 --- a/src/default_theme/note._ +++ b/src/default_theme/note._ @@ -1,12 +1,10 @@ -<% if (!note.children) { %> -
    +
    -

    - <%- note.name %> -

    +

    + <%- note.name %> +

    - <% if (note.description) { %> - <%= md(note.description) %> - <% } %> -
    -<% } %> \ No newline at end of file + <% if (note.description) { %> + <%= md(note.description) %> + <% } %> +
    \ No newline at end of file diff --git a/src/default_theme/section._ b/src/default_theme/section._ index d19786dea..cd30107e5 100644 --- a/src/default_theme/section._ +++ b/src/default_theme/section._ @@ -114,6 +114,15 @@ <% }) %> <% } %> + <% if (section.sees && section.sees.length) { %> +
    Related
    + <% section.sees.forEach(function(see) { %> + <% if (see.description) { %> + <%= md(see.description, true) %> + <% }%> + <% }) %> + <% } %> + <% if (section.throws && section.throws.length) { %>
    Throws
      diff --git a/src/extractors/comments.js b/src/extractors/comments.js index bcd755207..2ab7dc884 100644 --- a/src/extractors/comments.js +++ b/src/extractors/comments.js @@ -1,5 +1,7 @@ -const traverse = require('@babel/traverse').default; -const isJSDocComment = require('../is_jsdoc_comment'); +import babelTraverse from '@babel/traverse'; +import isJSDocComment from '../is_jsdoc_comment.js'; + +const traverse = babelTraverse.default || babelTraverse; /** * Iterate through the abstract syntax tree, finding a different kind of comment @@ -13,7 +15,13 @@ const isJSDocComment = require('../is_jsdoc_comment'); * @returns comments * @private */ -function walkComments(type, includeContext, ast, data, addComment) { +export default function walkComments( + type, + includeContext, + ast, + data, + addComment +) { const newResults = []; traverse(ast, { @@ -51,5 +59,3 @@ function walkComments(type, includeContext, ast, data, addComment) { return newResults; } - -module.exports = walkComments; diff --git a/src/extractors/exported.js b/src/extractors/exported.js index 14ae00b13..da6f8955b 100644 --- a/src/extractors/exported.js +++ b/src/extractors/exported.js @@ -1,25 +1,36 @@ -const traverse = require('@babel/traverse').default; -const isJSDocComment = require('../is_jsdoc_comment'); -const t = require('@babel/types'); -const nodePath = require('path'); -const fs = require('fs'); -const { parseToAst } = require('../parsers/parse_to_ast'); -const findTarget = require('../infer/finders').findTarget; +import babelTraverse from '@babel/traverse'; +import isJSDocComment from '../is_jsdoc_comment.js'; +import t from '@babel/types'; +import nodePath from 'path'; +import fs from 'fs'; +import { parseToAst } from '../parsers/parse_to_ast.js'; +import findTarget from '../infer/finders.js'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); +const traverse = babelTraverse.default || babelTraverse; /** * Iterate through the abstract syntax tree, finding ES6-style exports, * and inserting blank comments into documentation.js's processing stream. * Through inference steps, these comments gain more information and are automatically * documented as well as we can. + * @param {Object} config + * @param {Object} [config.extensions] extensions to try when resolving * @param {Object} ast the babel-parsed syntax tree * @param {Object} data the name of the file * @param {Function} addComment a method that creates a new comment if necessary * @returns {Array} comments * @private */ -function walkExported(ast, data /*: { +export default function walkExported( + config /* { extensions?: string[] } */, + ast, + data /*: { file: string -} */, addComment) { +} */, + addComment +) { const newResults = []; const filename = data.file; const dataCache = new Map(); @@ -45,7 +56,7 @@ function walkExported(ast, data /*: { } return comments - .map(function(comment) { + .map(function (comment) { return addComment( data, comment.value, @@ -61,7 +72,7 @@ function walkExported(ast, data /*: { function addComments(data, path, overrideName) { const comments = getComments(data, path); if (overrideName) { - comments.forEach(function(comment) { + comments.forEach(function (comment) { comment.name = overrideName; }); } @@ -112,7 +123,8 @@ function walkExported(ast, data /*: { local, exportKind, filename, - source.value + source.value, + config.extensions ); bindingPath = tmp.ast; specData = tmp.data; @@ -173,16 +185,40 @@ function traverseExportedSubtree(path, data, addComments, overrideName) { } } -function getCachedData(dataCache, filePath) { - let path = filePath; - if (!nodePath.extname(path)) { - path = require.resolve(path); +function resolveFile(filePath, extensions = []) { + try { + // First try resolving the file with the default extensions. + return require.resolve(filePath); + } catch { + // If that fails, try resolving the file with the extensions passed in. + } + + // Then try all other extensions in order. + for (const extension of extensions) { + try { + return require.resolve( + `${filePath}${extension.startsWith('.') ? extension : `.${extension}`}` + ); + } catch { + continue; + } } + throw new Error( + `Could not resolve \`${filePath}\` with any of the extensions: ${[ + ...require.extensions, + ...extensions + ].join(', ')}` + ); +} + +function getCachedData(dataCache, filePath, extensions) { + const path = resolveFile(filePath, extensions); + let value = dataCache.get(path); if (!value) { const input = fs.readFileSync(path, 'utf-8'); - const ast = parseToAst(input); + const ast = parseToAst(input, path); value = { data: { file: path, @@ -201,10 +237,11 @@ function findExportDeclaration( name, exportKind, referrer, - filename + filename, + extensions ) { const depPath = nodePath.resolve(nodePath.dirname(referrer), filename); - const tmp = getCachedData(dataCache, depPath); + const tmp = getCachedData(dataCache, depPath, extensions); const ast = tmp.ast; let data = tmp.data; @@ -224,7 +261,8 @@ function findExportDeclaration( if ( declaration.isFunctionDeclaration() || declaration.isClassDeclaration() || - declaration.isTypeAlias() + declaration.isTypeAlias() || + declaration.isOpaqueType() ) { bindingName = declaration.node.id.name; } else if (declaration.isVariableDeclaration()) { @@ -264,7 +302,8 @@ function findExportDeclaration( local, exportKind, depPath, - source.value + source.value, + extensions ); rv = tmp.ast; data = tmp.data; @@ -315,5 +354,3 @@ function findLocalType(scope, local) { }); return rv; } - -module.exports = walkExported; diff --git a/src/filter_access.js b/src/filter_access.js index b9b0e642a..610aa3fa5 100644 --- a/src/filter_access.js +++ b/src/filter_access.js @@ -1,4 +1,4 @@ -const { walk } = require('./walk'); +import walk from './walk.js'; /** * Exclude given access levels from the generated documentation: this allows @@ -26,4 +26,4 @@ function filterAccess(levels, comments) { return walk(comments.filter(filter), recurse); } -module.exports = filterAccess; +export default filterAccess; diff --git a/src/flow_doctrine.js b/src/flow_doctrine.js index 9be259902..f81f2ffc8 100644 --- a/src/flow_doctrine.js +++ b/src/flow_doctrine.js @@ -1,9 +1,11 @@ -const generate = require('@babel/generator').default; +import generator from '@babel/generator'; +const generate = generator.default || generator; const namedTypes = { NumberTypeAnnotation: 'number', BooleanTypeAnnotation: 'boolean', - StringTypeAnnotation: 'string' + StringTypeAnnotation: 'string', + SymbolTypeAnnotation: 'symbol' }; const oneToOne = { @@ -164,4 +166,4 @@ function flowDoctrine(type) { } } -module.exports = flowDoctrine; +export default flowDoctrine; diff --git a/src/garbage_collect.js b/src/garbage_collect.js index 79b8ed36b..47ed77aa1 100644 --- a/src/garbage_collect.js +++ b/src/garbage_collect.js @@ -4,4 +4,4 @@ function garbageCollect(comment) { return comment; } -module.exports = garbageCollect; +export default garbageCollect; diff --git a/src/get-readme-file.js b/src/get-readme-file.js index 7be8b7068..74fc63480 100644 --- a/src/get-readme-file.js +++ b/src/get-readme-file.js @@ -1,7 +1,7 @@ -const fs = require('fs'); -const path = require('path'); +import fs from 'fs'; +import path from 'path'; -module.exports = function findReadme(dir) { +export default function findReadme(dir) { const readmeFilenames = [ 'README.markdown', 'README.md', @@ -10,7 +10,7 @@ module.exports = function findReadme(dir) { 'readme.md' ]; - const readmeFile = fs.readdirSync(dir).find(function(filename) { + const readmeFile = fs.readdirSync(dir).find(function (filename) { return readmeFilenames.indexOf(filename) >= 0; }); @@ -19,4 +19,4 @@ module.exports = function findReadme(dir) { } return 'README.md'; -}; +} diff --git a/src/git/find_git.js b/src/git/find_git.js index 6a56a11f8..39869c007 100644 --- a/src/git/find_git.js +++ b/src/git/find_git.js @@ -1,22 +1,27 @@ -const path = require('path'); -const fs = require('fs'); +import path from 'path'; +import fs from 'fs'; /** * Given a full path to a single file, iterate upwards through the filesystem * to find a directory with a .git file indicating that it is a git repository * @param filename any file within a repository - * @returns repository path + * @returns repository root & its .git folder paths */ -function findGit(filename) { - const paths = filename.split(path.sep); - for (let i = paths.length; i > 0; i--) { - const p = path.resolve( - paths.slice(0, i).join(path.sep) + path.sep + '.git' - ); - if (fs.existsSync(p)) { - return p; +export default function findGit(filename) { + let root = path.resolve(filename); + while (root) { + root = path.dirname(root); + let git = path.join(root, '.git'); + if (!fs.existsSync(git)) continue; + + if (fs.statSync(git).isFile()) { + // git submodule + const matches = fs.readFileSync(git, 'utf8').match(/gitdir: (.*)/); + if (!matches) return null; + git = path.join(root, matches[1]); } + + return { root, git }; } + return null; } - -module.exports = findGit; diff --git a/src/git/url_prefix.js b/src/git/url_prefix.js index aedf19ae4..235b4ca80 100644 --- a/src/git/url_prefix.js +++ b/src/git/url_prefix.js @@ -1,7 +1,7 @@ -const fs = require('fs'); -const path = require('path'); -const gitUrlParse = require('git-url-parse'); -const getRemoteOrigin = require('remote-origin-url'); +import fs from 'fs'; +import path from 'path'; +import gitUrlParse from 'git-url-parse'; +import ini from 'ini'; /** * Sometimes git will [pack refs](https://git-scm.com/docs/git-pack-refs) @@ -14,7 +14,7 @@ const getRemoteOrigin = require('remote-origin-url'); * @param {string} branchName the branch name to resolve to * @returns {string} sha hash referring to current tree */ -function parsePackedRefs(packedRefs, branchName) { +export function parsePackedRefs(packedRefs, branchName) { return packedRefs .split(/\n/) .filter(line => line[0] !== '#' && line[0] !== '^') @@ -32,15 +32,15 @@ function parsePackedRefs(packedRefs, branchName) { * @returns {string} base HTTPS url of the GitHub repository * @throws {Error} if the root is not a git repo */ -function getGithubURLPrefix(root) { +export function getGithubURLPrefix({ git, root }) { let sha; try { - const head = fs.readFileSync(path.join(root, '.git', 'HEAD'), 'utf8'); + const head = fs.readFileSync(path.join(git, 'HEAD'), 'utf8'); const branch = head.match(/ref: (.*)/); if (branch) { const branchName = branch[1]; - const branchFileName = path.join(root, '.git', branchName); - const packedRefsName = path.join(root, '.git', 'packed-refs'); + const branchFileName = path.join(git, branchName); + const packedRefsName = path.join(git, 'packed-refs'); if (fs.existsSync(branchFileName)) { sha = fs.readFileSync(branchFileName, 'utf8'); } else if (fs.existsSync(packedRefsName)) { @@ -57,7 +57,15 @@ function getGithubURLPrefix(root) { sha = head; } if (sha) { - const parsed = gitUrlParse(getRemoteOrigin.sync(root)); + let origin; + if (git.indexOf(root) === 0) { + const config = parseGitConfig(path.join(git, 'config')); + origin = config['remote "origin"'].url; + } else { + const config = parseGitConfig(path.join(git, '..', '..', 'config')); + origin = config[`submodule "${path.basename(git)}"`].url; + } + const parsed = gitUrlParse(origin); parsed.git_suffix = false; // eslint-disable-line return parsed.toString('https') + '/blob/' + sha.trim() + '/'; } @@ -66,5 +74,12 @@ function getGithubURLPrefix(root) { } } -module.exports = getGithubURLPrefix; -module.exports.parsePackedRefs = parsePackedRefs; +function parseGitConfig(configPath) { + const str = fs + .readFileSync(configPath, 'utf8') + .replace( + /\[(\S+) "(.+)"\]/g, + (match, key, value) => `[${key} "${value.split('.').join('\\.')}"]` + ); + return ini.parse(str); +} diff --git a/src/github.js b/src/github.js index 46c497837..d52a8afdc 100644 --- a/src/github.js +++ b/src/github.js @@ -1,6 +1,6 @@ -const path = require('path'); -const findGit = require('./git/find_git'); -const getGithubURLPrefix = require('./git/url_prefix'); +import path from 'path'; +import findGit from './git/find_git.js'; +import { getGithubURLPrefix } from './git/url_prefix.js'; /** * Attempts to link code to its place on GitHub. @@ -9,16 +9,17 @@ const getGithubURLPrefix = require('./git/url_prefix'); * @param {Object} comment parsed comment * @returns {Object} comment with github inferred */ -module.exports = function(comment) { - const repoPath = findGit(comment.context.file); - const root = repoPath ? path.dirname(repoPath) : '.'; - const urlPrefix = getGithubURLPrefix(root); - const fileRelativePath = comment.context.file - .replace(root + path.sep, '') - .split(path.sep) - .join('/'); +export default function (comment) { + const paths = findGit(comment.context.file); + + const urlPrefix = paths && getGithubURLPrefix(paths); if (urlPrefix) { + const fileRelativePath = comment.context.file + .replace(paths.root + path.sep, '') + .split(path.sep) + .join('/'); + let startLine; let endLine; @@ -37,4 +38,4 @@ module.exports = function(comment) { }; } return comment; -}; +} diff --git a/src/hierarchy.js b/src/hierarchy.js index ab94adf8e..7bb870cbe 100644 --- a/src/hierarchy.js +++ b/src/hierarchy.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const hasOwnProperty = Object.prototype.hasOwnProperty; /** @@ -49,7 +49,7 @@ function pick(comment) { * @returns {Array} nested comments, with only root comments * at the top level. */ -module.exports = function(comments) { +export default function (comments) { let id = 0; const root = { members: getMembers() @@ -119,7 +119,7 @@ module.exports = function(comments) { node.comments.push(comment); }); - namesToUnroot.forEach(function(name) { + namesToUnroot.forEach(function (name) { delete root.members.static[name]; }); @@ -201,10 +201,7 @@ module.exports = function(comments) { comment.members.events = events; - comment.path = path - .map(pick) - .concat(pick(comment)) - .filter(Boolean); + comment.path = path.map(pick).concat(pick(comment)).filter(Boolean); const scopeChars = { instance: '#', @@ -247,4 +244,4 @@ module.exports = function(comments) { } return toComments(root.members.static); -}; +} diff --git a/src/index.js b/src/index.js index 49490e1f2..abe624c7c 100644 --- a/src/index.js +++ b/src/index.js @@ -1,29 +1,31 @@ -const fs = require('fs'); -const path = require('path'); -const _ = require('lodash'); -const sort = require('./sort'); -const nest = require('./nest'); -const filterAccess = require('./filter_access'); -const dependency = require('./input/dependency'); -const shallow = require('./input/shallow'); -const parseJavaScript = require('./parsers/javascript'); -const parseVueScript = require('./parsers/vue'); -const github = require('./github'); -const hierarchy = require('./hierarchy'); -const inferName = require('./infer/name'); -const inferKind = require('./infer/kind'); -const inferAugments = require('./infer/augments'); -const inferParams = require('./infer/params'); -const inferProperties = require('./infer/properties'); -const inferMembership = require('./infer/membership'); -const inferReturn = require('./infer/return'); -const inferAccess = require('./infer/access'); -const inferType = require('./infer/type'); -const formatLint = require('./lint').formatLint; -const garbageCollect = require('./garbage_collect'); -const lintComments = require('./lint').lintComments; -const markdownAST = require('./output/markdown_ast'); -const mergeConfig = require('./merge_config'); +import _ from 'lodash'; +import sort from './sort.js'; +import { nest } from './nest.js'; +import filterAccess from './filter_access.js'; +import dependency from './input/dependency.js'; +import shallow from './input/shallow.js'; +import parseJavaScript from './parsers/javascript.js'; +import github from './github.js'; +import hierarchy from './hierarchy.js'; +import inferName from './infer/name.js'; +import inferKind from './infer/kind.js'; +import inferAugments from './infer/augments.js'; +import inferImplements from './infer/implements.js'; +import inferParams from './infer/params.js'; +import inferProperties from './infer/properties.js'; +import inferMembership from './infer/membership.js'; +import inferReturn from './infer/return.js'; +import inferAccess from './infer/access.js'; +import inferType from './infer/type.js'; +import { formatLint, lintComments } from './lint.js'; +import garbageCollect from './garbage_collect.js'; +import markdownAST from './output/markdown_ast.js'; +import mergeConfig from './merge_config.js'; +import html from './output/html.js'; +import md from './output/markdown.js'; +import json from './output/json.js'; +import createFormatters from './output/util/formatters.js'; +import LinkerStack from './output/util/linker_stack.js'; /** * Build a pipeline of comment handlers. @@ -66,7 +68,7 @@ function configure(indexes, args) { * @param {Object} config options * @returns {Promise>} promise with results */ -function expandInputs(indexes, config) { +export function expandInputs(indexes, config) { // Ensure that indexes is an array of strings indexes = [].concat(indexes); @@ -89,6 +91,7 @@ function buildInternal(inputsAndConfig) { inferName, inferAccess(config.inferPrivate), inferAugments, + inferImplements, inferKind, nest, inferParams, @@ -100,18 +103,7 @@ function buildInternal(inputsAndConfig) { garbageCollect ]); - const extractedComments = _.flatMap(inputs, function(sourceFile) { - if (!sourceFile.source) { - sourceFile.source = fs.readFileSync(sourceFile.file, 'utf8'); - } - - if (!sourceFile.file) { - sourceFile.file = ''; - } - - if (path.extname(sourceFile.file) === '.vue') { - return parseVueScript(sourceFile, config).map(buildPipeline); - } + const extractedComments = _.flatMap(inputs, function (sourceFile) { return parseJavaScript(sourceFile, config).map(buildPipeline); }).filter(Boolean); @@ -140,10 +132,6 @@ function lintInternal(inputsAndConfig) { ]); const extractedComments = _.flatMap(inputs, sourceFile => { - if (!sourceFile.source) { - sourceFile.source = fs.readFileSync(sourceFile.file, 'utf8'); - } - return parseJavaScript(sourceFile, config).map(lintPipeline); }).filter(Boolean); @@ -180,7 +168,8 @@ function lintInternal(inputsAndConfig) { * } * }); */ -const lint = (indexes, args) => configure(indexes, args).then(lintInternal); +export const lint = (indexes, args) => + configure(indexes, args).then(lintInternal); /** * Generate JavaScript documentation as a list of parsed JSDoc @@ -220,7 +209,8 @@ const lint = (indexes, args) => configure(indexes, args).then(lintInternal); * // any other kind of code data. * }); */ -const build = (indexes, args) => configure(indexes, args).then(buildInternal); +export const build = (indexes, args) => + configure(indexes, args).then(buildInternal); /** * Documentation's formats are modular methods that take comments @@ -229,20 +219,15 @@ const build = (indexes, args) => configure(indexes, args).then(buildInternal); * output. * @public */ -const formats = { - html: require('./output/html'), - md: require('./output/markdown'), +export const formats = { + html, + md, remark: (comments, config) => markdownAST(comments, config).then(res => JSON.stringify(res, null, 2)), - json: require('./output/json') + json }; -module.exports.lint = lint; -module.exports.expandInputs = expandInputs; -module.exports.build = build; -module.exports.formats = formats; - -module.exports.util = { - createFormatters: require('./output/util/formatters'), - LinkerStack: require('./output/util/linker_stack') +export const util = { + createFormatters, + LinkerStack }; diff --git a/src/infer/access.js b/src/infer/access.js index cbde55a70..32f304f54 100644 --- a/src/infer/access.js +++ b/src/infer/access.js @@ -6,18 +6,28 @@ * @returns {Function} inference method * @private */ -function inferAccessWithPattern(pattern) { +export default function inferAccessWithPattern(pattern) { const re = pattern && new RegExp(pattern); /** - * Infers access (only private atm) from the name. + * Infers access from TypeScript annotations, and from the name (only private atm). * * @name inferAccess * @param {Object} comment parsed comment * @returns {Object} comment with access inferred */ return function inferAccess(comment) { - // This needs to run after inferName beacuse we infer the access based on + // Support typescript access modifiers + const ast = comment.context.ast; + if (ast && ast.node.accessibility) { + comment.access = ast.node.accessibility; + } + + if (ast && ast.node.readonly) { + comment.readonly = true; + } + + // This needs to run after inferName because we infer the access based on // the name. if ( re && @@ -31,5 +41,3 @@ function inferAccessWithPattern(pattern) { return comment; }; } - -module.exports = inferAccessWithPattern; diff --git a/src/infer/augments.js b/src/infer/augments.js index 577da7f31..f310c167b 100644 --- a/src/infer/augments.js +++ b/src/infer/augments.js @@ -1,5 +1,7 @@ -const generate = require('@babel/generator').default; -const findTarget = require('./finders').findTarget; +import babelGenerate from '@babel/generator'; +import findTarget from './finders.js'; + +const generate = babelGenerate.default || babelGenerate; /** * Infers an `augments` tag from an ES6 class declaration @@ -7,7 +9,7 @@ const findTarget = require('./finders').findTarget; * @param {Object} comment parsed comment * @returns {Object} comment with kind inferred */ -function inferAugments(comment) { +export default function inferAugments(comment) { if (comment.augments.length) { return comment; } @@ -31,7 +33,10 @@ function inferAugments(comment) { name: generate(path.node.superClass).code }); } - } else if (path.isInterfaceDeclaration()) { + } else if ( + (path.isInterfaceDeclaration() || path.isTSInterfaceDeclaration()) && + path.node.extends + ) { /* * extends is an array of interface identifiers or * qualified type identifiers, so we generate code @@ -48,5 +53,3 @@ function inferAugments(comment) { return comment; } - -module.exports = inferAugments; diff --git a/src/infer/finders.js b/src/infer/finders.js index 1240d0b5e..2592e3bb8 100644 --- a/src/infer/finders.js +++ b/src/infer/finders.js @@ -1,4 +1,4 @@ -const t = require('@babel/types'); +import t from '@babel/types'; /** * Try to find the part of JavaScript a comment is referring to, by @@ -8,7 +8,7 @@ const t = require('@babel/types'); * @returns {?Object} ast path, if one is found. * @private */ -function findTarget(path) { +export default function findTarget(path) { if (!path) { return path; } @@ -26,7 +26,7 @@ function findTarget(path) { } else if (t.isExpressionStatement(path)) { // foo.x = TARGET path = path.get('expression').get('right'); - } else if (t.isObjectProperty(path)) { + } else if (t.isObjectProperty(path) || t.isObjectTypeProperty(path)) { // var foo = { x: TARGET }; object property path = path.get('value'); } else if (t.isClassProperty(path) && path.get('value').node) { @@ -36,5 +36,3 @@ function findTarget(path) { return path.node && path; } - -module.exports.findTarget = findTarget; diff --git a/src/infer/implements.js b/src/infer/implements.js new file mode 100644 index 000000000..26240898e --- /dev/null +++ b/src/infer/implements.js @@ -0,0 +1,38 @@ +import babelGenerate from '@babel/generator'; +import findTarget from './finders.js'; + +const generate = babelGenerate.default || babelGenerate; + +/** + * Infers an `augments` tag from an ES6 class declaration + * + * @param {Object} comment parsed comment + * @returns {Object} comment with kind inferred + */ +export default function inferImplements(comment) { + if (comment.implements.length) { + return comment; + } + + const path = findTarget(comment.context.ast); + if (!path) { + return comment; + } + + if (path.isClass() && path.node.implements) { + /* + * A interface can be a single name, like React, + * or a MemberExpression like React.Component, + * so we generate code from the AST rather than assuming + * we can access a name like `path.node.implements.name` + */ + path.node.implements.forEach(impl => { + comment.implements.push({ + title: 'implements', + name: generate(impl).code + }); + }); + } + + return comment; +} diff --git a/src/infer/kind.js b/src/infer/kind.js index 0314ffd69..f6ecdd4aa 100644 --- a/src/infer/kind.js +++ b/src/infer/kind.js @@ -1,4 +1,4 @@ -const t = require('@babel/types'); +import t from '@babel/types'; /** * Infers a `kind` tag from the context. @@ -6,7 +6,7 @@ const t = require('@babel/types'); * @param {Object} comment parsed comment * @returns {Object} comment with kind inferred */ -function inferKind(comment) { +export default function inferKind(comment) { if (comment.kind) { return comment; } @@ -18,17 +18,38 @@ function inferKind(comment) { if (t.isClassDeclaration(node)) { comment.kind = 'class'; - } else if (t.isFunction(node)) { + if (node.abstract) { + comment.abstract = true; + } + } else if ( + t.isFunction(node) || + t.isTSDeclareMethod(node) || + t.isTSDeclareFunction(node) || + t.isFunctionTypeAnnotation(node) || + t.isTSMethodSignature(node) + ) { if (node.kind === 'get' || node.kind === 'set') { comment.kind = 'member'; } else if (node.id && node.id.name && !!/^[A-Z]/.exec(node.id.name)) { comment.kind = 'class'; } else { comment.kind = 'function'; + if (node.async) { + comment.async = true; + } + if (node.generator) { + comment.generator = true; + } + if (node.abstract) { + comment.abstract = true; + } } - } else if (t.isTypeAlias(node)) { + } else if (t.isTypeAlias(node) || t.isTSTypeAliasDeclaration(node)) { comment.kind = 'typedef'; - } else if (t.isInterfaceDeclaration(node)) { + } else if ( + t.isInterfaceDeclaration(node) || + t.isTSInterfaceDeclaration(node) + ) { comment.kind = 'interface'; } else if (t.isVariableDeclaration(node)) { if (node.kind === 'const') { @@ -47,11 +68,25 @@ function inferKind(comment) { } else if (t.isExpressionStatement(node)) { // module.exports = function() {} findKind(node.expression.right); - } else if (t.isClassProperty(node)) { + } else if ( + t.isClassProperty(node) || + t.isTSPropertySignature(node) || + t.isTSEnumMember(node) + ) { comment.kind = 'member'; } else if (t.isProperty(node)) { // { foo: function() {} } findKind(node.value); + } else if (t.isTSModuleDeclaration(node)) { + comment.kind = 'namespace'; + } else if (t.isObjectTypeProperty(node)) { + if (t.isFunctionTypeAnnotation(node.value)) { + findKind(node.value); + } else { + comment.kind = 'member'; + } + } else if (t.isTSEnumDeclaration(node)) { + comment.kind = 'enum'; } } @@ -61,5 +96,3 @@ function inferKind(comment) { return comment; } - -module.exports = inferKind; diff --git a/src/infer/membership.js b/src/infer/membership.js index 92b06f0ae..756d43e3b 100644 --- a/src/infer/membership.js +++ b/src/infer/membership.js @@ -1,7 +1,7 @@ -const n = require('@babel/types'); -const pathParse = require('parse-filepath'); -const isJSDocComment = require('../is_jsdoc_comment'); -const parse = require('../parse'); +import n from '@babel/types'; +import pathParse from 'parse-filepath'; +import isJSDocComment from '../is_jsdoc_comment.js'; +import parse from '../parse.js'; function inferModuleName(comment) { return ( @@ -91,7 +91,10 @@ function extractThis(path, comment) { scope = scope.parent; } - if (n.isClassMethod(scope.block)) { + if ( + n.isClassMethod(scope.block) && + scope.path.parentPath.parentPath.node.id !== null + ) { identifiers.push( scope.path.parentPath.parentPath.node.id.name, 'prototype' @@ -215,7 +218,7 @@ function normalizeMemberof(comment) { * @private * @returns {Object} comment with membership inferred */ -module.exports = function() { +export default function () { let currentModule; /** @@ -296,10 +299,7 @@ module.exports = function() { if ( path.isExpressionStatement() && path.get('expression').isAssignmentExpression() && - path - .get('expression') - .get('left') - .isMemberExpression() + path.get('expression').get('left').isMemberExpression() ) { path = path.get('expression').get('left'); } @@ -341,7 +341,9 @@ module.exports = function() { // class Foo { prop: T } // var Foo = class { prop: T } if ( - (path.isClassMethod() || path.isClassProperty()) && + (path.isClassMethod() || + path.isClassProperty() || + path.isTSDeclareMethod()) && path.parentPath.isClassBody() && path.parentPath.parentPath.isClass() ) { @@ -359,7 +361,7 @@ module.exports = function() { } const declarationNode = path.parentPath.parentPath.node; - if (!declarationNode.id) { + if (!declarationNode.id && !declarationNode.key) { // export default function () {} // export default class {} // Use module name instead. @@ -392,39 +394,91 @@ module.exports = function() { objectParent = path.parentPath.parentPath; } else if (path.isObjectMethod() && path.parentPath.isObjectExpression()) { objectParent = path.parentPath; + } else if (path.isObjectTypeProperty() || path.isTSTypeElement()) { + objectParent = path.parentPath; } // Confirm that the thing being documented is a property of an object. if (objectParent) { - // The @lends comment is sometimes attached to the first property rather than - // the object expression itself. - const lendsIdentifiers = - findLendsIdentifiers(objectParent) || - findLendsIdentifiers(objectParent.get('properties')[0]); - - if (lendsIdentifiers) { - return inferMembershipFromIdentifiers(comment, lendsIdentifiers); - } else if (objectParent.parentPath.isAssignmentExpression()) { - // Foo = { ... }; - // Foo.prototype = { ... }; - // Foo.bar = { ... }; - return inferMembershipFromIdentifiers( - comment, - extractIdentifiers(objectParent.parentPath.get('left')) - ); - } else if (objectParent.parentPath.isVariableDeclarator()) { - // var Foo = { ... }; - return inferMembershipFromIdentifiers(comment, [ - objectParent.parentPath.get('id').node.name - ]); - } else if (objectParent.parentPath.isExportDefaultDeclaration()) { - // export default { ... }; - return inferMembershipFromIdentifiers(comment, [ - inferModuleName(currentModule || comment) - ]); + // Collect all keys of parent nested object keys, e.g. {foo: bar: {baz: 1}} + const objectKeys = []; + + while (!objectParent.isStatement()) { + if ( + objectParent.isObjectProperty() || + objectParent.isObjectTypeProperty() || + objectParent.isTSPropertySignature() + ) { + objectKeys.unshift(objectParent.node.key.name); + } + + // The @lends comment is sometimes attached to the first property rather than + // the object expression itself. + const lendsIdentifiers = + findLendsIdentifiers(objectParent) || + findLendsIdentifiers(objectParent.get('properties')[0]); + + if (lendsIdentifiers) { + return inferMembershipFromIdentifiers(comment, [ + ...lendsIdentifiers, + ...objectKeys + ]); + } else if (objectParent.parentPath.isAssignmentExpression()) { + // Foo = { ... }; + // Foo.prototype = { ... }; + // Foo.bar = { ... }; + return inferMembershipFromIdentifiers(comment, [ + ...extractIdentifiers(objectParent.parentPath.get('left')), + ...objectKeys + ]); + } else if (objectParent.parentPath.isVariableDeclarator()) { + // var Foo = { ... }; + return inferMembershipFromIdentifiers(comment, [ + objectParent.parentPath.get('id').node.name, + ...objectKeys + ]); + } else if (objectParent.parentPath.isExportDefaultDeclaration()) { + // export default { ... }; + return inferMembershipFromIdentifiers(comment, [ + inferModuleName(currentModule || comment), + ...objectKeys + ]); + } else if ( + objectParent.parentPath.isTypeAlias() || + objectParent.parentPath.isTSTypeAliasDeclaration() + ) { + // type X = { ... } + return inferMembershipFromIdentifiers(comment, [ + objectParent.parentPath.node.id.name, + ...objectKeys + ]); + } else if ( + objectParent.parentPath.isInterfaceDeclaration() || + objectParent.parentPath.isTSInterfaceDeclaration() + ) { + // interface Foo { ... } + return inferMembershipFromIdentifiers( + comment, + [...inferClassMembership(objectParent.parentPath), ...objectKeys], + 'instance' + ); + } + + objectParent = objectParent.parentPath; } } + // TypeScript enums + // enum Foo { A } + if (path.isTSEnumMember()) { + const enumPath = path.parentPath; + return inferMembershipFromIdentifiers( + comment, + [enumPath.node.id.name], + 'static' + ); + } + // var function Foo() { // function bar() {} // return { bar: bar }; @@ -439,4 +493,4 @@ module.exports = function() { return comment; }; -}; +} diff --git a/src/infer/name.js b/src/infer/name.js index 46cf44391..0b8af39b0 100644 --- a/src/infer/name.js +++ b/src/infer/name.js @@ -1,5 +1,5 @@ -const pathParse = require('parse-filepath'); -const t = require('@babel/types'); +import pathParse from 'parse-filepath'; +import t from '@babel/types'; /** * Infers a `name` tag from the context. @@ -8,7 +8,7 @@ const t = require('@babel/types'); * @param {Object} comment parsed comment * @returns {Object} comment with name inferred */ -function inferName(comment) { +export default function inferName(comment) { if (comment.name) { return comment; } @@ -98,5 +98,3 @@ function inferName(comment) { return comment; } - -module.exports = inferName; diff --git a/src/infer/params.js b/src/infer/params.js index 23754920a..2103af6df 100644 --- a/src/infer/params.js +++ b/src/infer/params.js @@ -1,8 +1,10 @@ -const t = require('@babel/types'); -const generate = require('@babel/generator').default; -const _ = require('lodash'); -const finders = require('./finders'); -const flowDoctrine = require('../flow_doctrine'); +import t from '@babel/types'; +import babelGenerate from '@babel/generator'; +import _ from 'lodash'; +import findTarget from './finders.js'; +import typeAnnotation from '../type_annotation.js'; + +const generate = babelGenerate.default || babelGenerate; /** * Infers param tags by reading function parameter names @@ -10,8 +12,8 @@ const flowDoctrine = require('../flow_doctrine'); * @param {Object} comment parsed comment * @returns {Object} comment with parameters */ -function inferParams(comment) { - let path = finders.findTarget(comment.context.ast); +export default function inferParams(comment) { + let path = findTarget(comment.context.ast); if (!path) { return comment; } @@ -37,7 +39,13 @@ function inferParams(comment) { } } - if (!t.isFunction(path)) { + if ( + !t.isFunction(path) && + !t.isTSDeclareFunction(path) && + !t.isTSDeclareMethod(path) && + !t.isFunctionTypeAnnotation(path) && + !t.isTSMethodSignature(path) + ) { return comment; } @@ -45,11 +53,41 @@ function inferParams(comment) { return comment; } - return inferAndCombineParams(path.node.params, comment); + let params = t.isTSMethodSignature(path) + ? path.node.parameters + : path.node.params; + + // Flow function annotations separate rest parameters into a different list + if (t.isFunctionTypeAnnotation(path) && path.node.rest) { + params = params.concat(path.node.rest); + } + + const result = inferAndCombineParams(params, comment); + + // Wrap flow rest parameter with a RestType + if (t.isFunctionTypeAnnotation(path) && path.node.rest) { + const rest = result.params[result.params.length - 1]; + rest.type = { + type: 'RestType', + expression: rest.type + }; + } + + return result; } function inferAndCombineParams(params, comment) { - const inferredParams = params.map((param, i) => paramToDoc(param, '', i)); + const inferredParams = params.map((param, i) => { + const doc = paramToDoc(param, '', i); + if (param.optional) { + doc.type = { + type: 'OptionalType', + expression: doc.type + }; + } + + return doc; + }); const paramsToMerge = comment.params; if (comment.constructorComment) { paramsToMerge.push.apply(paramsToMerge, comment.constructorComment.params); @@ -129,7 +167,8 @@ function paramToDoc(param, prefix, i) { title: 'param', name: autoName, anonymous: true, - type: (param.typeAnnotation && flowDoctrine(param)) || { + type: (param.typeAnnotation && + typeAnnotation(param.typeAnnotation)) || { type: 'NameExpression', name: 'Object' }, @@ -145,7 +184,8 @@ function paramToDoc(param, prefix, i) { title: 'param', name: prefixedName, anonymous: true, - type: (param.typeAnnotation && flowDoctrine(param)) || { + type: (param.typeAnnotation && + typeAnnotation(param.typeAnnotation)) || { type: 'NameExpression', name: 'Object' }, @@ -169,7 +209,8 @@ function paramToDoc(param, prefix, i) { title: 'param', name: autoName, anonymous: true, - type: (param.typeAnnotation && flowDoctrine(param)) || { + type: (param.typeAnnotation && + typeAnnotation(param.typeAnnotation)) || { type: 'NameExpression', name: 'Array' }, @@ -211,7 +252,7 @@ function paramToDoc(param, prefix, i) { type: 'RestType' }; if (param.typeAnnotation) { - type.expression = flowDoctrine(param.typeAnnotation.typeAnnotation); + type.expression = typeAnnotation(param.typeAnnotation); } return { title: 'param', @@ -220,17 +261,29 @@ function paramToDoc(param, prefix, i) { type }; } + case 'FunctionTypeParam': // flow interface method signature + return { + title: 'param', + name: prefix ? prefix + '.' + param.name.name : param.name.name, + lineNumber: param.loc.start.line, + type: param.typeAnnotation + ? typeAnnotation(param.typeAnnotation) + : undefined + }; default: { // (a) const newParam = { title: 'param', name: prefix ? prefixedName : param.name, - lineNumber: param.loc.start.line + // A skipped array argument like ([, a]); + // looks like { name: '0', indexed: true }, and thus has no location, + // so we allow location to be undefined here. + lineNumber: param.loc ? param.loc.start.line : undefined }; // Flow/TS annotations if (param.typeAnnotation && param.typeAnnotation.typeAnnotation) { - newParam.type = flowDoctrine(param.typeAnnotation.typeAnnotation); + newParam.type = typeAnnotation(param.typeAnnotation.typeAnnotation); } return newParam; @@ -261,7 +314,7 @@ function renameTree(node, explicitName) { } } -function mergeTrees(inferred, explicit) { +export function mergeTrees(inferred, explicit) { // The first order of business is ensuring that the root types are specified // in the right order. For the order of arguments, the inferred reality // is the ground-truth: a function like @@ -292,8 +345,9 @@ function mergeTopNodes(inferred, explicit) { const errors = explicitTagsWithoutInference.map(tag => { return { message: - `An explicit parameter named ${tag.name || - ''} was specified but didn't match ` + + `An explicit parameter named ${ + tag.name || '' + } was specified but didn't match ` + `inferred information ${Array.from(inferredNames).join(', ')}`, commentLineNumber: tag.lineNumber }; @@ -338,7 +392,9 @@ function combineTags(inferredTag, explicitTag) { let defaultValue; if (!explicitTag.type) { type = inferredTag.type; - } else if (!explicitTag.default && inferredTag.default) { + } + + if (!explicitTag.default && inferredTag.default) { defaultValue = inferredTag.default; } @@ -360,6 +416,3 @@ function combineTags(inferredTag, explicitTag) { defaultValue ? { default: defaultValue } : {} ); } - -module.exports = inferParams; -module.exports.mergeTrees = mergeTrees; diff --git a/src/infer/properties.js b/src/infer/properties.js index e7f609967..0560d1e1a 100644 --- a/src/infer/properties.js +++ b/src/infer/properties.js @@ -1,5 +1,5 @@ -const flowDoctrine = require('../flow_doctrine'); -const findTarget = require('./finders').findTarget; +import typeAnnotation from '../type_annotation.js'; +import findTarget from './finders.js'; function prefixedName(name, prefix) { if (prefix.length) { @@ -8,9 +8,41 @@ function prefixedName(name, prefix) { return name; } +function isObjectSpreadAndExactUtilTypeProperty(property) { + return ( + property.type === 'ObjectTypeSpreadProperty' && + property.argument.id.name === '$Exact' + ); +} + function propertyToDoc(property, prefix) { - let type = flowDoctrine(property.value); - const name = property.key.name || property.key.value; + let type; + let name; + + if (property.type === 'ObjectTypeProperty') { + // flow + type = typeAnnotation(property.value); + } else if (property.type === 'TSPropertySignature') { + // typescript + type = typeAnnotation(property.typeAnnotation); + } else if (property.type === 'TSMethodSignature') { + // typescript + type = typeAnnotation(property); + } + + if (property.key) { + name = property.key.name || property.key.value; + } + + // Special handling for { ...$Exact } + if (isObjectSpreadAndExactUtilTypeProperty(property)) { + name = property.argument.id.name; + type = { + type: 'NameExpression', + name: property.argument.typeParameters.params[0].id.name + }; + } + if (property.optional) { type = { type: 'OptionalType', @@ -31,23 +63,34 @@ function propertyToDoc(property, prefix) { * @param {Object} comment parsed comment * @returns {Object} comment with inferred properties */ -function inferProperties(comment) { +export default function inferProperties(comment) { const explicitProperties = new Set(); // Ensure that explicitly specified properties are not overridden // by inferred properties comment.properties.forEach(prop => explicitProperties.add(prop.name)); function inferProperties(value, prefix) { - if (value.type === 'ObjectTypeAnnotation') { - value.properties.forEach(function(property) { - if (!explicitProperties.has(prefixedName(property.key.name, prefix))) { + if ( + value.type === 'ObjectTypeAnnotation' || + value.type === 'TSTypeLiteral' + ) { + const properties = value.properties || value.members || value.body || []; + properties.forEach(function (property) { + let name; + + if (property.key) { + name = property.key.name; + } + + // Special handling for { ...$Exact } + if (isObjectSpreadAndExactUtilTypeProperty(property)) { + name = property.argument.id.name; + } + + if (!explicitProperties.has(prefixedName(name, prefix))) { comment.properties = comment.properties.concat( propertyToDoc(property, prefix) ); - // Nested type parameters - if (property.value.type === 'ObjectTypeAnnotation') { - inferProperties(property.value, prefix.concat(property.key.name)); - } } }); } @@ -58,12 +101,10 @@ function inferProperties(comment) { if (path) { if (path.isTypeAlias()) { inferProperties(path.node.right, []); - } else if (path.isInterfaceDeclaration()) { - inferProperties(path.node.body, []); + } else if (path.isTSTypeAliasDeclaration()) { + inferProperties(path.node.typeAnnotation, []); } } return comment; } - -module.exports = inferProperties; diff --git a/src/infer/return.js b/src/infer/return.js index c192307a5..a33917599 100644 --- a/src/infer/return.js +++ b/src/infer/return.js @@ -1,6 +1,20 @@ -const findTarget = require('./finders').findTarget; -const t = require('@babel/types'); -const flowDoctrine = require('../flow_doctrine'); +import findTarget from './finders.js'; +import t from '@babel/types'; +import typeAnnotation from '../type_annotation.js'; + +// TypeScript does not currently support typing the return value of a generator function. +// This is coming in TypeScript 3.3 - https://github.com/Microsoft/TypeScript/pull/30790 +const TS_GENERATORS = { + Iterator: 1, + Iterable: 1, + IterableIterator: 1 +}; + +const FLOW_GENERATORS = { + Iterator: 1, + Iterable: 1, + Generator: 3 +}; /** * Infers returns tags by using Flow return type annotations @@ -9,7 +23,7 @@ const flowDoctrine = require('../flow_doctrine'); * @param {Object} comment parsed comment * @returns {Object} comment with return tag inferred */ -function inferReturn(comment) { +export default function inferReturn(comment) { if ( Array.isArray(comment.returns) && comment.returns.length && @@ -29,8 +43,47 @@ function inferReturn(comment) { fn = fn.init; } - if (t.isFunction(fn) && fn.returnType && fn.returnType.typeAnnotation) { - const returnType = flowDoctrine(fn.returnType.typeAnnotation); + const fnReturnType = getReturnType(fn); + if (fnReturnType) { + let returnType = typeAnnotation(fnReturnType); + let yieldsType = null; + + if (fn.generator && returnType.type === 'TypeApplication') { + comment.generator = true; + let numArgs; + + if (t.isFlow(fnReturnType)) { + numArgs = FLOW_GENERATORS[returnType.expression.name]; + } else if (t.isTSTypeAnnotation(fnReturnType)) { + numArgs = TS_GENERATORS[returnType.expression.name]; + } + + if (returnType.applications.length === numArgs) { + yieldsType = returnType.applications[0]; + + if (numArgs > 1) { + returnType = returnType.applications[1]; + } else { + returnType = { + type: 'VoidLiteral' + }; + } + } + } + + if (yieldsType) { + if (comment.yields && comment.yields.length > 0) { + comment.yields[0].type = yieldsType; + } else { + comment.yields = [ + { + title: 'yields', + type: yieldsType + } + ]; + } + } + if (comment.returns && comment.returns.length > 0) { comment.returns[0].type = returnType; } else { @@ -45,4 +98,17 @@ function inferReturn(comment) { return comment; } -module.exports = inferReturn; +function getReturnType(fn) { + if ( + t.isFunction(fn) || + t.isTSDeclareFunction(fn) || + t.isTSDeclareMethod(fn) || + t.isFunctionTypeAnnotation(fn) + ) { + return fn.returnType; + } + + if (t.isTSMethodSignature(fn)) { + return fn.typeAnnotation; + } +} diff --git a/src/infer/type.js b/src/infer/type.js index 963a4dff1..67779dff0 100644 --- a/src/infer/type.js +++ b/src/infer/type.js @@ -1,6 +1,5 @@ -const findTarget = require('./finders').findTarget; -const flowDoctrine = require('../flow_doctrine'); -const t = require('@babel/types'); +import findTarget from './finders.js'; +import typeAnnotation from '../type_annotation.js'; const constTypeMapping = { BooleanLiteral: { type: 'BooleanTypeAnnotation' }, @@ -9,18 +8,19 @@ const constTypeMapping = { }; /** - * Infers type tags by using Flow type annotations + * Infers type tags by using Flow/TypeScript type annotations * * @name inferType * @param {Object} comment parsed comment * @returns {Object} comment with type tag inferred */ -function inferType(comment) { +export default function inferType(comment) { if (comment.type) { return comment; } - const path = findTarget(comment.context.ast); + const ast = comment.context.ast; + const path = findTarget(ast); if (!path) { return comment; } @@ -35,19 +35,39 @@ function inferType(comment) { } break; case 'ClassProperty': + case 'TSTypeAliasDeclaration': + case 'TSPropertySignature': type = n.typeAnnotation; break; + case 'ClassMethod': + case 'TSDeclareMethod': + if (n.kind === 'get') { + type = n.returnType; + } else if (n.kind === 'set' && n.params[0]) { + type = n.params[0].typeAnnotation; + } + break; case 'TypeAlias': type = n.right; break; + case 'TSEnumMember': + if (n.initializer) { + if (constTypeMapping[n.initializer.type]) { + type = constTypeMapping[n.initializer.type]; + } + } else { + type = constTypeMapping.NumericLiteral; + } + break; + default: + if (ast.isObjectTypeProperty() && !ast.node.method) { + type = ast.node.value; + } } - if (type) { - if (t.isTypeAnnotation(type)) { - type = type.typeAnnotation; - } - comment.type = flowDoctrine(type); + // Don't provide a `type` section when it's an ObjectTypeAnnotation, + // `properties` already exists and renders better. + if (type && type.type !== 'ObjectTypeAnnotation') { + comment.type = typeAnnotation(type); } return comment; } - -module.exports = inferType; diff --git a/src/inline_tokenizer.js b/src/inline_tokenizer.js deleted file mode 100644 index ef6da415c..000000000 --- a/src/inline_tokenizer.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Create a tokenizer method for Remark, our Markdown processor, - * that is able to parse JSDoc inline tokens - * - * @private - * @param {string} type the destination type of the parsed objects - * @param {RegExp} regex regular expression for extracting content - * from text - * @returns {Function} tokenizer - */ -function makeTokenizer(type, regex) { - const tokenizer = function(eat, value) { - const match = regex.exec(value); - - if (!match) { - return; - } - - return eat(match[0])({ - type, - url: match[1], - title: null, - jsdoc: true, - children: [ - { - type: 'text', - value: match[2] || match[1] - } - ] - }); - }; - - tokenizer.notInLink = true; - tokenizer.locator = function(value, fromIndex) { - return value.indexOf('{@' + type, fromIndex); - }; - - return tokenizer; -} - -const tokenizeLink = makeTokenizer('link', /^\{@link\s+(.+?)(?:[\s|](.*?))?\}/); -const tokenizeTutorial = makeTokenizer( - 'tutorial', - /^\{@tutorial\s+(.+?)(?:[\s|](.*?))?\}/ -); - -/** - * A remark plugin that installs - * [tokenizers](https://github.com/wooorm/remark/blob/master/doc/remarkplugin.3.md#function-tokenizereat-value-silent) - * and [locators](https://github.com/wooorm/remark/blob/master/doc/remarkplugin.3.md#function-locatorvalue-fromindex) - * for JSDoc inline `{@link}` and `{@tutorial}` tags. - * - * This does not handle the `[text]({@link url})` and `[text]({@tutorial url})` forms of these tags. - * That's a JSDoc misfeature; just use regular markdown syntax instead: `[text](url)`. - * - * @returns {undefined} - */ -module.exports = function(/* options: Object*/) { - const proto = this.Parser.prototype; - proto.inlineTokenizers.tokenizeLink = tokenizeLink; - proto.inlineTokenizers.tokenizeTutorial = tokenizeTutorial; - const methods = proto.inlineMethods; - methods.splice( - methods.indexOf('inlineText'), - 0, - 'tokenizeLink', - 'tokenizeTutorial' - ); -}; diff --git a/src/input/dependency.js b/src/input/dependency.js index 5e7669274..4a737e808 100644 --- a/src/input/dependency.js +++ b/src/input/dependency.js @@ -1,12 +1,9 @@ -const mdeps = require('module-deps-sortable'); -const path = require('path'); -const babelify = require('babelify'); -const concat = require('concat-stream'); -const moduleFilters = require('../module_filters'); -const smartGlob = require('../smart_glob.js'); +import mdeps from './moduleDeps.js'; +import internalOnly from '../module_filters.js'; +import smartGlob from './smart_glob.js'; /** - * Returns a readable stream of dependencies, given an array of entry + * Returns a array of dependencies, given an array of entry * points and an object of options to provide to module-deps. * * This stream requires filesystem access, and thus isn't suitable @@ -16,95 +13,19 @@ const smartGlob = require('../smart_glob.js'); * @param config optional options passed * @returns results */ -function dependencyStream(indexes, config) { - const md = mdeps({ +export default async function dependencyStream( + indexes, + { parseExtension = [], requireExtension = [] } +) { + const md = await mdeps(smartGlob(indexes, parseExtension), { /** * Determine whether a module should be included in documentation * @param {string} id path to a module * @returns {boolean} true if the module should be included. */ - filter: id => !!config.external || moduleFilters.internalOnly(id), - extensions: [] - .concat(config.requireExtension || []) - .map(ext => '.' + ext.replace(/^\./, '')) - .concat(['.mjs', '.js', '.json', '.es6', '.jsx']), - transform: [ - babelify.configure({ - sourceMaps: false, - compact: false, - cwd: path.resolve(__dirname, '../../'), - presets: [ - '@babel/preset-react', - '@babel/preset-env', - '@babel/preset-flow' - ], - plugins: [ - // Stage 0 - '@babel/plugin-proposal-function-bind', - // Stage 1 - '@babel/plugin-proposal-export-default-from', - '@babel/plugin-proposal-logical-assignment-operators', - '@babel/plugin-proposal-optional-chaining', - ['@babel/plugin-proposal-pipeline-operator', { proposal: 'minimal' }], - [ - '@babel/plugin-proposal-nullish-coalescing-operator', - { loose: false } - ], - '@babel/plugin-proposal-do-expressions', - // Stage 2 - ['@babel/plugin-proposal-decorators', { legacy: true }], - '@babel/plugin-proposal-function-sent', - '@babel/plugin-proposal-export-namespace-from', - '@babel/plugin-proposal-numeric-separator', - '@babel/plugin-proposal-throw-expressions', - // Stage 3 - '@babel/plugin-syntax-dynamic-import', - '@babel/plugin-syntax-import-meta', - ['@babel/plugin-proposal-class-properties', { loose: false }], - '@babel/plugin-proposal-json-strings' - ] - }) - ], - postFilter: moduleFilters.externals(indexes, config), - resolve: - config.resolve === 'node' && - ((id, opts, cb) => { - const r = require('resolve'); - opts.basedir = path.dirname(opts.filename); - r(id, opts, cb); - }) + filter: id => internalOnly(id), + extensions: [...parseExtension, ...requireExtension] }); - smartGlob(indexes, config.parseExtension).forEach(index => { - md.write(path.resolve(index)); - }); - md.end(); - return new Promise((resolve, reject) => { - md.once('error', reject); - md.pipe( - concat(function(inputs) { - resolve( - inputs - .filter( - input => - // At this point, we may have allowed a JSON file to be caught by - // module-deps, or anything else allowed by requireExtension. - // otherwise module-deps would complain about - // it not being found. But Babel can't parse JSON, so we filter non-JavaScript - // files away. - config.parseExtension.indexOf( - path.extname(input.file).replace(/^\./, '') - ) > -1 - ) - .map(input => { - // remove source file, since it's transformed anyway - delete input.source; - return input; - }) - ); - }) - ); - }); + return md; } - -module.exports = dependencyStream; diff --git a/src/input/moduleDeps.js b/src/input/moduleDeps.js new file mode 100644 index 000000000..b2e8479fd --- /dev/null +++ b/src/input/moduleDeps.js @@ -0,0 +1,108 @@ +import path from 'path'; +import util from 'util'; +import r from 'resolve'; +import readFileCode from './readFileCode.js'; +import konan from 'konan'; +import { parseToAst } from '../parsers/parse_to_ast.js'; + +// const parseExst = ['.js', '.mjs', '.jsx', '.vue', '.ts', '.tsx']; +const resolveExst = ['.json', '.css', '.less', '.sass']; +const resolve = util.promisify(r); + +class Deps { + constructor(opts = {}) { + this.fileCache = opts.fileCache || {}; + this.visited = {}; + this.res = []; + + this.options = { ...opts }; + } + + async flush(input) { + const promises = input.map(file => { + const dir = path.dirname(file); + return this.walk(file, { + basedir: dir, + filename: 'root' + }); + }); + await Promise.all(promises); + + return this.res; + } + + async readFile(file) { + if (this.fileCache[file]) { + return this.fileCache[file]; + } + + return readFileCode(file); + } + + async walk(id, parent) { + const extensions = this.options.extensions; + const sortKey = parent.sortKey || ''; + let file = null; + + try { + file = await resolve(id, { ...parent, extensions }); + } catch (err) { + if (err.code === 'MODULE_NOT_FOUND') { + console.warn(`module not found: "${id}" from file ${parent.filename}`); + return; + } + throw err; + } + + if (this.visited[file] || resolveExst.includes(path.extname(file))) { + return file; + } + this.visited[file] = true; + + const source = await this.readFile(file); + const depsArray = this.parseDeps(file, source); + if (!depsArray) { + return file; + } + + const deps = {}; + const promises = depsArray.map(async (id, i) => { + const filter = this.options.filter; + if (filter && !filter(id)) { + deps[id] = false; + return; + } + const number = i.toString().padStart(8, '0'); + deps[id] = await this.walk(id, { + filename: file, + basedir: path.dirname(file), + sortKey: sortKey + '!' + file + ':' + number + }); + }); + + await Promise.all(promises); + + this.res.push({ + id: file, + source, + deps, + file, + sortKey: sortKey + '!' + file + }); + return file; + } + + parseDeps(file, src) { + try { + const ast = parseToAst(src, file); + return konan(ast).strings; + } catch (ex) { + console.error(`Parsing file ${file}: ${ex}`); + } + } +} + +export default async function (input = [], opts = {}) { + const dep = new Deps(opts); + return dep.flush(Array.from(new Set(input))); +} diff --git a/src/input/readFileCode.js b/src/input/readFileCode.js new file mode 100644 index 000000000..5b71a610a --- /dev/null +++ b/src/input/readFileCode.js @@ -0,0 +1,42 @@ +import path from 'path'; +import { readFile } from 'fs/promises'; +let vuecompiler = null; +let vueVersion = 'v3'; + +async function vueParser(source) { + if (!vuecompiler) { + try { + vuecompiler = await import('@vue/compiler-sfc'); + } catch { + try { + vuecompiler = await import('vue-template-compiler'); + vueVersion = 'v2'; + } catch (err) { + console.error( + 'You need to load package vue-template-compiler for Vue 2 or @vue/compiler-sfc for Vue 3' + ); + throw err; + } + } + } + + let component = {}; + if (vueVersion === 'v3') { + component = vuecompiler.parse(source).descriptor; + } else { + component = vuecompiler.parseComponent(source); + } + + return component.script?.content || ''; +} + +export default async function readFileCode(file) { + let source = await readFile(file, { + encoding: 'utf8' + }); + + if (path.extname(file) === '.vue') { + source = await vueParser(source); + } + return source; +} diff --git a/src/input/shallow.js b/src/input/shallow.js index 22a6b01e1..7ee6b6392 100644 --- a/src/input/shallow.js +++ b/src/input/shallow.js @@ -1,4 +1,5 @@ -const smartGlob = require('../smart_glob.js'); +import smartGlob from './smart_glob.js'; +import readFileCode from './readFileCode.js'; /** * A readable source for content that doesn't do dependency resolution, but @@ -16,25 +17,22 @@ const smartGlob = require('../smart_glob.js'); * @param config parsing options * @returns promise with parsed files */ -module.exports = function(indexes, config) { +export default async function (indexes, config) { const objects = []; - const strings = []; - for (const index of indexes) { - if (typeof index === 'string') { - strings.push(index); - } else if (typeof index === 'object') { - objects.push(index); - } else { - return Promise.reject( - new Error('Indexes should be either strings or objects') - ); + const paths = indexes.filter(v => { + if (typeof v === 'object') { + v.file = v.file ?? ''; + objects.push(v); + return false; } - } - return Promise.resolve( - objects.concat( - smartGlob(strings, config.parseExtension).map(file => ({ - file - })) - ) + return typeof v === 'string'; + }); + const files = await Promise.all( + smartGlob(paths, config.parseExtension).map(async file => ({ + source: await readFileCode(file), + file + })) ); -}; + + return [...objects, ...files]; +} diff --git a/src/smart_glob.js b/src/input/smart_glob.js similarity index 89% rename from src/smart_glob.js rename to src/input/smart_glob.js index a5ace50b1..c845d714c 100644 --- a/src/smart_glob.js +++ b/src/input/smart_glob.js @@ -1,6 +1,6 @@ -const fs = require('fs'); -const path = require('path'); -const glob = require('glob'); +import fs from 'fs'; +import path from 'path'; +import glob from 'glob'; /** * Replace Windows with posix style paths @@ -34,7 +34,7 @@ function processPath(extensions) { const cwd = process.cwd(); extensions = extensions || ['.js']; - extensions = extensions.map(function(ext) { + extensions = extensions.map(function (ext) { return ext.replace(/^\./, ''); }); @@ -53,7 +53,7 @@ function processPath(extensions) { * @returns {string} The glob path or the file path itself * @private */ - return function(pathname) { + return function (pathname) { let newPath = pathname; const resolvedPath = path.resolve(cwd, pathname); @@ -80,7 +80,7 @@ function resolveFileGlobPatterns(patterns, extensions) { } /** - * Build a list of absolute filesnames on which ESLint will act. + * Build a list of absolute filenames on which ESLint will act. * Ignored files are excluded from the results, as are duplicates. * * @param globPatterns Glob patterns. @@ -106,7 +106,7 @@ function listFilesToProcess(globPatterns) { added.add(filename); } - globPatterns.forEach(function(pattern) { + globPatterns.forEach(function (pattern) { const file = path.resolve(cwd, pattern); if (fs.existsSync(file) && fs.statSync(file).isFile()) { addFile(fs.realpathSync(file)); @@ -117,7 +117,7 @@ function listFilesToProcess(globPatterns) { cwd }; - glob.sync(pattern, globOptions).forEach(function(globMatch) { + glob.sync(pattern, globOptions).forEach(function (globMatch) { addFile(path.resolve(cwd, globMatch)); }); } @@ -126,8 +126,6 @@ function listFilesToProcess(globPatterns) { return files; } -function smartGlob(indexes, extensions) { +export default function smartGlob(indexes, extensions) { return listFilesToProcess(resolveFileGlobPatterns(indexes, extensions)); } - -module.exports = smartGlob; diff --git a/src/is_jsdoc_comment.js b/src/is_jsdoc_comment.js index e2114367b..1ea85e309 100644 --- a/src/is_jsdoc_comment.js +++ b/src/is_jsdoc_comment.js @@ -10,7 +10,7 @@ * @param {Object} comment an ast path of the comment * @returns {boolean} whether it is valid */ -module.exports = function isJSDocComment( +export default function isJSDocComment( comment /*: { value: string, type: string @@ -20,4 +20,4 @@ module.exports = function isJSDocComment( return ( comment.type === 'CommentBlock' && asterisks && asterisks[1].length === 1 ); -}; +} diff --git a/src/lint.js b/src/lint.js index 8e5efcad8..163f864ed 100644 --- a/src/lint.js +++ b/src/lint.js @@ -1,8 +1,8 @@ -const VFile = require('vfile'); -const { walk } = require('./walk'); -const vfileSort = require('vfile-sort'); -const reporter = require('vfile-reporter'); -const nest = require('./nest'); +import { VFile } from 'vfile'; +import walk from './walk.js'; +import { sort as vfileSort } from 'vfile-sort'; +import { reporter } from 'vfile-reporter'; +import { nest } from './nest.js'; const CANONICAL = { String: 'string', @@ -21,8 +21,8 @@ const CANONICAL = { * @param {Object} comment parsed comment * @returns {Array} array of errors */ -function lintComments(comment) { - comment.tags.forEach(function(tag) { +export function lintComments(comment) { + comment.tags.forEach(function (tag) { function nameInvariant(name) { if (name && typeof CANONICAL[name] === 'string') { comment.errors.push({ @@ -67,23 +67,20 @@ function lintComments(comment) { * @param {Array} comments a list of comments * @returns {string} user-readable output */ -function formatLint(comments) { +export function formatLint(comments) { const vFiles = {}; - walk(comments, function(comment) { - comment.errors.forEach(function(error) { + walk(comments, function (comment) { + comment.errors.forEach(function (error) { const p = comment.context.file; vFiles[p] = vFiles[p] || new VFile({ path: p }); - vFiles[p].warn(error.message, { + vFiles[p].message(error.message, { line: comment.loc.start.line + (error.commentLineNumber || 0) }); }); }); return reporter(Object.keys(vFiles).map(p => vfileSort(vFiles[p]))); } - -module.exports.lintComments = lintComments; -module.exports.formatLint = formatLint; diff --git a/src/merge_config.js b/src/merge_config.js index 292d88750..cea2591c6 100644 --- a/src/merge_config.js +++ b/src/merge_config.js @@ -1,20 +1,20 @@ -const yaml = require('js-yaml'); -const fs = require('fs'); -const pify = require('pify'); -const readPkgUp = require('read-pkg-up'); -const path = require('path'); -const stripComments = require('strip-json-comments'); +import conf from './config.js'; +import yaml from 'js-yaml'; +import fs from 'fs'; +import pify from 'pify'; +import { readPackageUp } from 'read-pkg-up'; +import path from 'path'; +import stripComments from 'strip-json-comments'; -function processToc(config, absFilePath) { +function normalizeToc(config, basePath) { if (!config || !config.toc) { return config; } config.toc = config.toc.map(entry => { if (entry && entry.file) { - entry.file = path.join(path.dirname(absFilePath), entry.file); + entry.file = path.join(basePath, entry.file); } - return entry; }); @@ -25,72 +25,60 @@ function processToc(config, absFilePath) { * Use the nearest package.json file for the default * values of `name` and `version` config. * - * @param {Object} config the user-provided config, usually via argv + * @param {boolean} noPackage options which prevent ge info about project from package.json * @returns {Promise} configuration with inferred parameters - * @throws {Error} if the file cannot be read. */ -function mergePackage(config) { - if (config.noPackage) { - return Promise.resolve(config); +async function readPackage(noPackage) { + const global = conf.globalConfig; + if (noPackage) { + return {}; + } + const param = ['name', 'homepage', 'version', 'description']; + try { + const { packageJson } = await readPackageUp(); + return param.reduce((res, key) => { + res[`project-${key}`] = global[key] || packageJson[key]; + return res; + }, {}); + } catch (e) { + return {}; } - return ( - readPkgUp() - .then(pkg => { - ['name', 'homepage', 'version', 'description'].forEach(key => { - config[`project-${key}`] = config[`project-${key}`] || pkg.pkg[key]; - }); - return config; - }) - // Allow this to fail: this inference is not required. - .catch(() => config) - ); } /** * Merge a configuration file into program config, assuming that the location * of the configuration file is given as one of those config. * - * @param {Object} config the user-provided config, usually via argv - * @returns {Promise} configuration, if it can be parsed + * @param {String} config the user-provided config path, usually via argv + * @returns {Promise} configuration, which are parsed * @throws {Error} if the file cannot be read. */ -function mergeConfigFile(config) { - if (config && typeof config.config === 'string') { - const filePath = config.config; - const ext = path.extname(filePath); - const absFilePath = path.resolve(process.cwd(), filePath); - return pify(fs) - .readFile(absFilePath, 'utf8') - .then(rawFile => { - if (ext === '.json') { - return Object.assign( - {}, - config, - processToc(JSON.parse(stripComments(rawFile)), absFilePath) - ); - } - return Object.assign( - {}, - config, - processToc(yaml.safeLoad(rawFile), absFilePath) - ); - }); +async function readConfigFile(config) { + if (typeof config !== 'string') { + return {}; } + const filePath = config; + const absFilePath = path.resolve(process.cwd(), filePath); + const rawFile = await pify(fs).readFile(absFilePath, 'utf8'); + const basePath = path.dirname(absFilePath); - return Promise.resolve(config || {}); + let obj = null; + if (path.extname(filePath) === '.json') { + obj = JSON.parse(stripComments(rawFile)); + } else { + obj = yaml.load(rawFile); + } + if ('noPackage' in obj) { + obj['no-package'] = obj.noPackage; + delete obj.noPackage; + } + return normalizeToc(obj, basePath); } -function mergeConfig(config) { - config.parseExtension = (config.parseExtension || []).concat([ - 'mjs', - 'js', - 'jsx', - 'es5', - 'es6', - 'vue' - ]); +export default async function mergeConfig(config = {}) { + conf.add(config); + conf.add(await readConfigFile(conf.globalConfig.config)); + conf.add(await readPackage(conf.globalConfig['no-package'])); - return mergeConfigFile(config).then(mergePackage); + return conf.globalConfig; } - -module.exports = mergeConfig; diff --git a/src/module_filters.js b/src/module_filters.js index 6dbf422e2..59cc92d50 100644 --- a/src/module_filters.js +++ b/src/module_filters.js @@ -1,6 +1,3 @@ -const path = require('path'); -const micromatch = require('micromatch'); - // Skip external modules. Based on http://git.io/pzPO. const internalModuleRegexp = process.platform === 'win32' @@ -11,52 +8,4 @@ const internalModuleRegexp = /** * Module filters */ -module.exports = { - internalOnly: internalModuleRegexp.test.bind(internalModuleRegexp), - - /** - * Create a filter function for use with module-deps, allowing the specified - * external modules through. - * - * @param {Array} indexes - the list of entry points that will be - * used by module-deps - * @param {Object} options - An options object with `external` being a - * micromatch-compatible glob. *NOTE:* the glob will be matched relative to - * the top-level node_modules directory for each entry point. - * @returns {function} - A function for use as the module-deps `postFilter` - * options. - */ - externals: function externalModuleFilter(indexes, options) { - let externalFilters = false; - if (options.external) { - externalFilters = indexes.map(index => { - // grab the path of the top-level node_modules directory. - const topNodeModules = path.join(path.dirname(index), 'node_modules'); - return function matchGlob(file, pkg) { - // if a module is not found, don't include it. - if (!file || !pkg) { - return false; - } - // if package.json specifies a 'main' script, strip that path off - // the file to get the module's directory. - // otherwise, just use the dirname of the file. - if (pkg.main) { - file = file.slice(0, -path.normalize(pkg.main).length); - } else { - file = path.dirname(file); - } - // test the path relative to the top node_modules dir. - const p = path.relative(topNodeModules, file); - return micromatch.any(p, options.external); - }; - }); - } - - return function(id, file, pkg) { - const internal = internalModuleRegexp.test(id); - return ( - internal || (externalFilters && externalFilters.some(f => f(file, pkg))) - ); - }; - } -}; +export default id => internalModuleRegexp.test(id); diff --git a/src/nest.js b/src/nest.js index af24b47db..e8471c376 100644 --- a/src/nest.js +++ b/src/nest.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const PATH_SPLIT = /(?:\[])?\./g; @@ -30,7 +30,7 @@ const tagDepth = tag => tag.name.split(PATH_SPLIT).length; * @param {Array} tags a list of tags * @returns {Object} nested comment */ -const nestTag = ( +export const nestTag = ( tags, errors // Use lodash here both for brevity and also because, unlike JavaScript's @@ -60,9 +60,7 @@ const nestTag = ( if (tag.name.match(/^(\$\d+)/)) { errors.push({ message: - `Parent of ${ - tag.name - } not found. To document a destructuring\n` + + `Parent of ${tag.name} not found. To document a destructuring\n` + `type, add a @param tag in its position to specify the name of the\n` + `destructured parameter`, commentLineNumber: tag.lineNumber @@ -97,11 +95,8 @@ const nestTag = ( * @param {Object} comment input comment * @returns {Object} nested comment */ -const nest = comment => +export const nest = comment => Object.assign(comment, { params: nestTag(comment.params, comment.errors), properties: nestTag(comment.properties, comment.errors) }); - -module.exports = nest; -module.exports.nestTag = nestTag; diff --git a/src/output/highlighter.js b/src/output/highlighter.js index 11ff4653c..4d43d52b8 100644 --- a/src/output/highlighter.js +++ b/src/output/highlighter.js @@ -1,5 +1,5 @@ -const visit = require('unist-util-visit'); -const hljs = require('highlight.js'); +import { visit } from 'unist-util-visit'; +import hljs from 'highlight.js'; /** * Adapted from remark-highlight.js @@ -18,7 +18,7 @@ function visitor(node) { } } -module.exports = function(ast) { +export default function (ast) { visit(ast, 'code', visitor); return ast; -}; +} diff --git a/src/output/html.js b/src/output/html.js index 33cd6fd7d..34d004759 100644 --- a/src/output/html.js +++ b/src/output/html.js @@ -1,5 +1,5 @@ -const path = require('path'); -const mergeConfig = require('../merge_config'); +import path from 'path'; +import mergeConfig from '../merge_config.js'; /** * Formats documentation as HTML. @@ -12,26 +12,20 @@ const mergeConfig = require('../merge_config'); * @public * @example * var documentation = require('documentation'); - * var streamArray = require('stream-array'); - * var vfs = require('vinyl-fs'); * * documentation.build(['index.js']) - * .then(documentation.formats.html) - * .then(output => { - * streamArray(output).pipe(vfs.dest('./output-directory')); - * }); + * .then(documentation.formats.html); */ -function html(comments, config) { - if (!config) { - config = {}; - } - return mergeConfig(config).then(config => { - let themePath = '../default_theme/'; - if (config.theme) { - themePath = path.resolve(process.cwd(), config.theme); +export default async function html(comments, localConfig = {}) { + const config = await mergeConfig(localConfig); + let themePath = config.theme && path.resolve(process.cwd(), config.theme); + if (themePath) { + if (process.platform === 'win32'){ + // On Windows, absolute paths must be prefixed with 'file:///' to avoid the ERR_UNSUPPORTED_ESM_URL_SCHEME error from import(). + themePath = 'file:///' + themePath; } - return require(themePath)(comments, config); - }); -} -module.exports = html; + return (await import(themePath)).default(comments, config); + } + return (await import('../default_theme/index.js')).default(comments, config); +} diff --git a/src/output/json.js b/src/output/json.js index 78051dfc3..920c87514 100644 --- a/src/output/json.js +++ b/src/output/json.js @@ -1,4 +1,4 @@ -const { walk } = require('../walk'); +import walk from '../walk.js'; /** * Formats documentation as a JSON string. @@ -18,7 +18,7 @@ const { walk } = require('../walk'); * fs.writeFileSync('./output.json', output); * }); */ -function json(comments) { +export default function json(comments) { walk(comments, comment => { delete comment.errors; if (comment.context) { @@ -28,5 +28,3 @@ function json(comments) { return Promise.resolve(JSON.stringify(comments, null, 2)); } - -module.exports = json; diff --git a/src/output/markdown.js b/src/output/markdown.js index 8b00fac08..b7a76566c 100644 --- a/src/output/markdown.js +++ b/src/output/markdown.js @@ -1,9 +1,10 @@ -const remark = require('remark'); -const markdownAST = require('./markdown_ast'); +import { remark } from 'remark'; +import remarkGfm from 'remark-gfm'; +import markdownAST from './markdown_ast.js'; /** * Formats documentation as - * [Markdown](http://daringfireball.net/projects/markdown/). + * [Markdown](https://daringfireball.net/projects/markdown/). * * @param {Array} comments parsed comments * @param {Object} args Options that can customize the output @@ -21,11 +22,11 @@ const markdownAST = require('./markdown_ast'); * fs.writeFileSync('./output.md', output); * }); */ -function markdown(comments, args) { +export default function markdown(comments, args) { if (!args) { args = {}; } - return markdownAST(comments, args).then(ast => remark().stringify(ast)); + return markdownAST(comments, args).then(ast => + remark().use(remarkGfm).stringify(ast) + ); } - -module.exports = markdown; diff --git a/src/output/markdown_ast.js b/src/output/markdown_ast.js index d612b9358..09ca97fe6 100644 --- a/src/output/markdown_ast.js +++ b/src/output/markdown_ast.js @@ -1,13 +1,13 @@ -const u = require('unist-builder'); -const remark = require('remark'); -const mergeConfig = require('../merge_config'); -const toc = require('remark-toc'); -const links = require('remark-reference-links'); -const hljs = require('highlight.js'); -const GithubSlugger = require('github-slugger'); -const LinkerStack = require('./util/linker_stack'); -const rerouteLinks = require('./util/reroute_links'); -const _formatType = require('./util/format_type'); +import { u } from 'unist-builder'; +import { remark } from 'remark'; +import mergeConfig from '../merge_config.js'; +import toc from 'remark-toc'; +import links from 'remark-reference-links'; +import hljs from 'highlight.js'; +import GithubSlugger from 'github-slugger'; +import LinkerStack from './util/linker_stack.js'; +import rerouteLinks from './util/reroute_links.js'; +import _formatType from './util/format_type.js'; const DEFAULT_LANGUAGE = 'javascript'; @@ -23,7 +23,7 @@ const DEFAULT_LANGUAGE = 'javascript'; * consult hljs.configure for the full list. * @returns {Promise} returns an eventual Markdown value */ -function markdownAST(comments, args) { +export default function markdownAST(comments, args) { return mergeConfig(args).then(config => buildMarkdownAST(comments, config)); } @@ -55,7 +55,7 @@ function buildMarkdownAST(comments, config) { /** * Generate an AST chunk for a comment at a given depth: this is - * split from the main function to handle hierarchially nested comments + * split from the main function to handle hierarchically nested comments * * @param {number} depth nesting of the comment, starting at 1 * @param {Object} comment a single comment @@ -73,7 +73,7 @@ function buildMarkdownAST(comments, config) { if (params.length === 0) return []; return u( 'list', - { ordered: false }, + { ordered: false, spread: false }, params.map(param => u( 'listItem', @@ -126,7 +126,7 @@ function buildMarkdownAST(comments, config) { function propertyList(properties) { return u( 'list', - { ordered: false }, + { ordered: false, spread: false }, properties.map(property => u( 'listItem', @@ -155,7 +155,7 @@ function buildMarkdownAST(comments, config) { return ( comment.examples.length > 0 && [u('heading', { depth: depth + 1 }, [u('text', 'Examples')])].concat( - comment.examples.reduce(function(memo, example) { + comment.examples.reduce(function (memo, example) { const language = hljsOptions.highlightAuto ? hljs.highlightAuto(example.description).language : DEFAULT_LANGUAGE; @@ -192,7 +192,7 @@ function buildMarkdownAST(comments, config) { comment.throws.length > 0 && u( 'list', - { ordered: false }, + { ordered: false, spread: false }, comment.throws.map(returns => u('listItem', [ u( @@ -223,15 +223,20 @@ function buildMarkdownAST(comments, config) { ); } - function seeLink(comment) { + function seeLink({ sees = [] }) { return ( - comment.sees.length > 0 && + sees.length > 0 && u( 'list', - { ordered: false }, - comment.sees.map(see => + { ordered: false, spread: false }, + sees.map(see => u('listItem', [ - u('strong', [u('text', 'See: ')].concat(see.children)) + u( + 'paragraph', + [u('strong', [u('text', 'See')]), u('text', ': ')].concat( + see.description + ) + ) ]) ) ) @@ -278,7 +283,7 @@ function buildMarkdownAST(comments, config) { [u('strong', [u('text', 'Meta')])].concat( u( 'list', - { ordered: false }, + { ordered: false, spread: false }, meta.map(tag => { let metaContent; if (tag === 'copyright' || tag === 'deprecated') { @@ -352,6 +357,13 @@ function buildMarkdownAST(comments, config) { [] ) ) + .concat( + !!comment.members.events.length && + comment.members.events.reduce( + (memo, child) => memo.concat(generate(depth + 1, child)), + [] + ) + ) .filter(Boolean); } @@ -371,11 +383,13 @@ function buildMarkdownAST(comments, config) { ); const pluginRemark = remark(); - if (config.markdownToc) pluginRemark.use(toc, { tight: true }); + if (config.markdownToc) + pluginRemark.use(toc, { + tight: true, + maxDepth: config.markdownTocMaxDepth + }); if (config.noReferenceLinks !== true) pluginRemark.use(links); root = pluginRemark.run(root); return Promise.resolve(root); } - -module.exports = markdownAST; diff --git a/src/output/util/format_type.js b/src/output/util/format_type.js index 2aebc7f4e..d66e03678 100644 --- a/src/output/util/format_type.js +++ b/src/output/util/format_type.js @@ -1,5 +1,6 @@ -const Syntax = require('doctrine-temporary-fork').Syntax; -const u = require('unist-builder'); +import doctrine from 'doctrine-temporary-fork'; +const Syntax = doctrine.Syntax; +import { u } from 'unist-builder'; /** * Shortcut to create a new text node @@ -99,7 +100,7 @@ function decorate(formatted, str, prefix) { * formatType({ type: 'NameExpression', name: 'String' })[0].url * // => 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String' */ -function formatType(getHref, node) { +export default function formatType(getHref, node) { let result = []; if (!node) { @@ -193,5 +194,3 @@ function formatType(getHref, node) { throw new Error('Unknown type ' + node.type); } } - -module.exports = formatType; diff --git a/src/output/util/formatters.js b/src/output/util/formatters.js index 6621b0e6e..15ab86e6f 100644 --- a/src/output/util/formatters.js +++ b/src/output/util/formatters.js @@ -1,10 +1,11 @@ -const remark = require('remark'); -const html = require('remark-html'); -const Syntax = require('doctrine-temporary-fork').Syntax; -const u = require('unist-builder'); -const _rerouteLinks = require('./reroute_links'); -const highlighter = require('../highlighter'); -const formatType = require('./format_type'); +import { remark } from 'remark'; +import html from 'remark-html'; +import doctrine from 'doctrine-temporary-fork'; +const Syntax = doctrine.Syntax; +import { u } from 'unist-builder'; +import _rerouteLinks from './reroute_links.js'; +import highlighter from '../highlighter.js'; +import formatType from './format_type.js'; /** * Create a formatter group, given a linker method that resolves @@ -13,7 +14,7 @@ const formatType = require('./format_type'); * @param getHref linker method * @returns {formatters} formatter object */ -module.exports = function(getHref) { +export default function (getHref) { const rerouteLinks = _rerouteLinks.bind(undefined, getHref); const formatters = {}; @@ -27,7 +28,7 @@ module.exports = function(getHref) { * @param {boolean} short whether to cut the details and make it skimmable * @returns {string} formatted parameter representation. */ - formatters.parameter = function(param, short) { + formatters.parameter = function (param, short) { if (short) { if (param.type && param.type.type == Syntax.OptionalType) { if (param.default) { @@ -45,7 +46,7 @@ module.exports = function(getHref) { * @param {Object} ast remark-compatible AST * @returns {string} HTML */ - formatters.markdown = function(ast) { + formatters.markdown = function (ast) { if (ast) { return remark() .use(html) @@ -60,7 +61,7 @@ module.exports = function(getHref) { * @param {Object} type doctrine-format type * @returns {string} HTML */ - formatters.type = function(type) { + formatters.type = function (type) { return formatters .markdown(u('root', formatType(getHref, type))) .replace(/\n/g, ''); @@ -71,7 +72,7 @@ module.exports = function(getHref) { * @param {string} text inner text of the link * @returns {string} potentially linked HTML */ - formatters.autolink = function(text) { + formatters.autolink = function (text) { const href = getHref(text); if (href) { // TODO: this is a temporary fix until we drop remark 3.x support, @@ -102,12 +103,12 @@ module.exports = function(getHref) { * @param {boolean} short whether to cut the details and make it skimmable * @returns {string} formatted parameters */ - formatters.parameters = function(section, short) { + formatters.parameters = function (section, short) { if (section.params) { return ( '(' + section.params - .map(function(param) { + .map(function (param) { return formatters.parameter(param, short); }) .join(', ') + @@ -118,4 +119,4 @@ module.exports = function(getHref) { }; return formatters; -}; +} diff --git a/src/output/util/linker_stack.js b/src/output/util/linker_stack.js index ae2a6f6ac..10c731838 100644 --- a/src/output/util/linker_stack.js +++ b/src/output/util/linker_stack.js @@ -1,5 +1,5 @@ -const globalsDocs = require('globals-docs'); -const { walk } = require('../../walk'); +import globalsDocs from 'globals-docs'; +import walk from '../../walk.js'; /** * Generate a linker method that links given hardcoded namepaths to URLs @@ -8,7 +8,7 @@ const { walk } = require('../../walk'); * @returns {Function} linker */ function pathsLinker(paths /* Object */) { - return function(namespace) { + return function (namespace) { if (paths[namespace]) { return paths[namespace]; } @@ -39,7 +39,7 @@ function firstPass(fns, input) { * @param {Object} config - configuration value * @returns {Function} linker method */ -class LinkerStack { +export default class LinkerStack { constructor(config) { this.stack = []; @@ -106,5 +106,3 @@ class LinkerStack { return firstPass(this.stack, namepath); } } - -module.exports = LinkerStack; diff --git a/src/output/util/reroute_links.js b/src/output/util/reroute_links.js index a50c7bf70..cedb07b5b 100644 --- a/src/output/util/reroute_links.js +++ b/src/output/util/reroute_links.js @@ -1,4 +1,4 @@ -const visit = require('unist-util-visit'); +import { visit } from 'unist-util-visit'; /** * Reroute inline jsdoc links in documentation @@ -7,8 +7,8 @@ const visit = require('unist-util-visit'); * @returns {Object} that ast with rerouted links * @private */ -module.exports = function rerouteLinks(getHref, ast) { - visit(ast, 'link', function(node) { +export default function rerouteLinks(getHref, ast) { + visit(ast, 'link', function (node) { if ( node.jsdoc && !node.url.match(/^(http|https|\.)/) && @@ -18,4 +18,4 @@ module.exports = function rerouteLinks(getHref, ast) { } }); return ast; -}; +} diff --git a/src/parse.js b/src/parse.js index ae9f91e94..a10c7b2b8 100644 --- a/src/parse.js +++ b/src/parse.js @@ -1,5 +1,5 @@ -const doctrine = require('doctrine-temporary-fork'); -const parseMarkdown = require('./parse_markdown'); +import doctrine from 'doctrine-temporary-fork'; +import parseMarkdown from './remark-parse.js'; /** * Flatteners: these methods simplify the structure of JSDoc comments @@ -23,6 +23,7 @@ const flatteners = { alias: flattenName, arg: synonym('param'), argument: synonym('param'), + async: flattenBoolean, /** * Parse tag * @private @@ -81,7 +82,10 @@ const flatteners = { desc: synonym('description'), description: flattenMarkdownDescription, emits: synonym('fires'), - enum: todo, + enum(result, tag) { + result.kind = 'enum'; + result.type = tag.type; + }, /** * Parse tag * @private @@ -157,6 +161,7 @@ const flatteners = { fires: todo, func: synonym('function'), function: flattenKindShorthand, + generator: flattenBoolean, /** * Parse tag * @private @@ -169,7 +174,14 @@ const flatteners = { hideconstructor: flattenBoolean, host: synonym('external'), ignore: flattenBoolean, - implements: todo, + implements(result, tag) { + // Match @extends/@augments above. + if (!tag.name && tag.type && tag.type.name) { + tag.name = tag.type.name; + } + + result.implements.push(tag); + }, inheritdoc: todo, /** * Parse tag @@ -197,7 +209,7 @@ const flatteners = { * @returns {undefined} has side-effects */ interface(result, tag) { - result.interface = true; + result.kind = 'interface'; if (tag.description) { result.name = tag.description; } @@ -339,7 +351,16 @@ const flatteners = { * @returns {undefined} has side-effects */ see(result, tag) { - result.sees.push(parseMarkdown(tag.description)); + const sees = { + description: parseMarkdown(tag.description), + title: 'sees' + }; + + if (tag.type) { + sees.type = tag.type; + } + + result.sees.push(sees); }, since: flattenDescription, /** @@ -400,7 +421,27 @@ const flatteners = { result.variation = tag.variation; }, version: flattenDescription, - virtual: synonym('abstract') + virtual: synonym('abstract'), + yield: synonym('yields'), + /** + * Parse tag + * @private + * @param {Object} result target comment + * @param {Object} tag the tag + * @returns {undefined} has side-effects + */ + yields(result, tag) { + const yields = { + description: parseMarkdown(tag.description), + title: 'yields' + }; + + if (tag.type) { + yields.type = tag.type; + } + + result.yields.push(yields); + } }; /** @@ -416,7 +457,7 @@ function todo() {} * @returns {Function} a flattener that remembers that key */ function synonym(key) { - return function(result, tag) { + return function (result, tag) { const fun = flatteners[key]; fun.apply(null, [result, tag, key].slice(0, fun.length)); }; @@ -568,7 +609,7 @@ function flattenKindShorthand(result, tag, key) { * @returns {Comment} an object conforming to the * [documentation schema](https://github.com/documentationjs/api-json) */ -function parseJSDoc(comment, loc, context) { +export default function parseJSDoc(comment, loc, context) { const result = doctrine.parse(comment, { // have doctrine itself remove the comment asterisks from content unwrap: true, @@ -586,19 +627,21 @@ function parseJSDoc(comment, loc, context) { result.augments = []; result.errors = []; result.examples = []; + result.implements = []; result.params = []; result.properties = []; result.returns = []; result.sees = []; result.throws = []; result.todos = []; + result.yields = []; if (result.description) { result.description = parseMarkdown(result.description); } // Reject parameter tags without a parameter name - result.tags.filter(function(tag) { + result.tags.filter(function (tag) { if (tag.title === 'param' && tag.name === undefined) { result.errors.push({ message: 'A @param tag without a parameter name was rejected' @@ -608,7 +651,7 @@ function parseJSDoc(comment, loc, context) { return true; }); - result.tags.forEach(function(tag) { + result.tags.forEach(function (tag) { if (tag.errors) { for (let j = 0; j < tag.errors.length; j++) { result.errors.push({ message: tag.errors[j] }); @@ -631,5 +674,3 @@ function parseJSDoc(comment, loc, context) { return result; } - -module.exports = parseJSDoc; diff --git a/src/parse_markdown.js b/src/parse_markdown.js deleted file mode 100644 index 944ef6be6..000000000 --- a/src/parse_markdown.js +++ /dev/null @@ -1,18 +0,0 @@ -const remark = require('remark'); -const inlineTokenizer = require('./inline_tokenizer'); - -/** - * Parse a string of Markdown into a Remark - * abstract syntax tree. - * - * @param {string} string markdown text - * @returns {Object} abstract syntax tree - * @private - */ -function parseMarkdown(string) { - return remark() - .use(inlineTokenizer) - .parse(string); -} - -module.exports = parseMarkdown; diff --git a/src/parsers/javascript.js b/src/parsers/javascript.js index 5e69a293d..880af6547 100644 --- a/src/parsers/javascript.js +++ b/src/parsers/javascript.js @@ -1,28 +1,13 @@ -const _ = require('lodash'); -const t = require('@babel/types'); -const parse = require('../parse'); -const walkComments = require('../extractors/comments'); -const walkExported = require('../extractors/exported'); -const util = require('util'); -const debuglog = util.debuglog('documentation'); -const findTarget = require('../infer/finders').findTarget; -const { parseToAst } = require('./parse_to_ast'); +import _ from 'lodash'; +import t from '@babel/types'; +import parse from '../parse.js'; +import walkComments from '../extractors/comments.js'; +import walkExported from '../extractors/exported.js'; +import util from 'util'; +import findTarget from '../infer/finders.js'; +import { parseToAst } from './parse_to_ast.js'; -/** - * Left-pad a string so that it can be sorted lexicographically. We sort - * comments to keep them in order. - * @param {string} str the string - * @param {number} width the width to pad to - * @returns {string} a padded string with the correct width - * @private - */ -function leftPad(str, width) { - str = str.toString(); - while (str.length < width) { - str = '0' + str; - } - return str; -} +const debuglog = util.debuglog('documentation'); /** * Receives a module-dep item, @@ -32,16 +17,20 @@ function leftPad(str, width) { * @param {Object} config config * @returns {Array} an array of parsed comments */ -function parseJavaScript(data, config) { +export default function parseJavaScript(data, config) { const visited = new Set(); const commentsByNode = new Map(); - const ast = parseToAst(data.source); + const ast = parseToAst(data.source, data.file); const addComment = _addComment.bind(null, visited, commentsByNode); + const extensions = [] + .concat(config.parseExtension, config.requireExtension) + .filter(Boolean); + return _.flatMap( config.documentExported - ? [walkExported] + ? [walkExported.bind(null, { extensions })] : [ walkComments.bind(null, 'leadingComments', true), walkComments.bind(null, 'innerComments', false), @@ -77,7 +66,8 @@ function _addComment( }*/ = { loc: nodeLoc, file: data.file, - sortKey: data.sortKey + ' ' + leftPad(nodeLoc.start.line, 8) + sortKey: + data.sortKey + ' ' + nodeLoc.start.line.toString().padStart(8, '0') }; if (includeContext) { @@ -125,5 +115,3 @@ function _addComment( return comment; } } - -module.exports = parseJavaScript; diff --git a/src/parsers/parse_to_ast.js b/src/parsers/parse_to_ast.js index 186e3172f..0eed35d0a 100644 --- a/src/parsers/parse_to_ast.js +++ b/src/parsers/parse_to_ast.js @@ -1,27 +1,46 @@ -const babelParser = require('@babel/parser'); +import babelParser from '@babel/parser'; +import path from 'path'; -const opts = { - allowImportExportEverywhere: true, - sourceType: 'module', - plugins: [ - 'asyncGenerators', - 'exportDefaultFrom', - 'optionalChaining', - 'classConstructorCall', - 'classProperties', - ['decorators', { decoratorsBeforeExport: false }], - 'doExpressions', - 'exportExtensions', - 'flow', - 'functionBind', - 'functionSent', - 'jsx', - 'objectRestSpread', - 'dynamicImport', - 'logicalAssignment' - ] +const TYPESCRIPT_EXTS = { + '.ts': ['typescript'], + '.tsx': ['typescript', 'jsx'] }; +// this list is roughly the same as the one in prettier +// https://github.com/prettier/prettier/blob/24d39a906834cf449304dc684b280a5ca9a0a6d7/src/language-js/parser-babel.js#L23 +export const standardBabelParserPlugins = [ + 'classPrivateMethods', + 'classPrivateProperties', + 'classProperties', + 'classStaticBlock', + 'decimal', + ['decorators', { decoratorsBeforeExport: false }], + 'doExpressions', + 'exportDefaultFrom', + 'functionBind', + 'functionSent', + 'importAssertions', + 'moduleBlocks', + 'moduleStringNames', + 'partialApplication', + ['pipelineOperator', { proposal: 'minimal' }], + 'privateIn', + ['recordAndTuple', { syntaxType: 'hash' }], + 'throwExpressions', + 'v8intrinsic' +]; + +function getParserOpts(file) { + return { + allowImportExportEverywhere: true, + sourceType: 'module', + plugins: [ + ...standardBabelParserPlugins, + ...(TYPESCRIPT_EXTS[path.extname(file || '')] || ['flow', 'jsx']) + ] + }; +} + /** * Convert flow comment types into flow annotations so that * they end up in the final AST. If the source does not contain @@ -29,15 +48,13 @@ const opts = { * @param {*} source code with flow type comments * @returns {string} code with flow annotations */ -function commentToFlow(source) { +export function commentToFlow(source) { if (!/@flow/.test(source)) return source; return source .replace(/\/\*::([^]+?)\*\//g, '$1') .replace(/\/\*:\s*([^]+?)\s*\*\//g, ':$1'); } -function parseToAst(source) { - return babelParser.parse(commentToFlow(source), opts); +export function parseToAst(source, file) { + return babelParser.parse(commentToFlow(source), getParserOpts(file)); } -module.exports.commentToFlow = commentToFlow; -module.exports.parseToAst = parseToAst; diff --git a/src/parsers/vue.js b/src/parsers/vue.js deleted file mode 100644 index 4dc488cbf..000000000 --- a/src/parsers/vue.js +++ /dev/null @@ -1,19 +0,0 @@ -const parseJavaScript = require('./javascript'); -const vuecompiler = require('vue-template-compiler'); - -/** - * Receives a module-dep item, - * reads the file, parses the VueScript, and parses the JSDoc. - * - * @param {Object} data a chunk of data provided by module-deps - * @param {Object} config config - * @returns {Array} an array of parsed comments - */ -function parseVueScript(data, config) { - const component = vuecompiler.parseComponent(data.source); - if (!component.script) return []; - data.source = component.script.content; - return parseJavaScript(data, config); -} - -module.exports = parseVueScript; diff --git a/src/remark-jsDoc-link.js b/src/remark-jsDoc-link.js new file mode 100644 index 000000000..dfbfd4200 --- /dev/null +++ b/src/remark-jsDoc-link.js @@ -0,0 +1,115 @@ +import { findAndReplace } from 'mdast-util-find-and-replace'; +import { markdownLineEnding } from 'micromark-util-character'; + +const link = '@link'; +const tutorial = '@tutorial'; + +function tokenizeJsDoclink(effects, ok, nok) { + let index = 0; + let focus = link; + + function atext(code) { + if (index !== link.length) { + if (focus.charCodeAt(index) === code) { + effects.consume(code); + index++; + return atext; + } else if (tutorial.charCodeAt(index) === code) { + focus = tutorial; + } + return nok(code); + } + if (code === 125) { + effects.consume(code); + effects.exit('literalJsDoclink'); + return ok(code); + } + + if (markdownLineEnding(code)) { + return nok(code); + } + + effects.consume(code); + return atext; + } + + return function (code) { + effects.enter('literalJsDoclink'); + effects.consume(code); + return atext; + }; +} + +const text = {}; +text[123] = { + tokenize: tokenizeJsDoclink, + previous(code) { + return code === null || code === 32 || markdownLineEnding(code); + } +}; + +const linkRegExp = /\{@link\s+(.+?)(?:[\s|](.*?))?\}/; +const tutorialRegExp = /\{@tutorial\s+(.+?)(?:[\s|](.*?))?\}/; + +/** + * A remark plugin that installs + * for JSDoc inline `{@link}` and `{@tutorial}` tags. + * + * This does not handle the `[text]({@link url})` and `[text]({@tutorial url})` forms of these tags. + * That's a JSDoc misfeature; just use regular markdown syntax instead: `[text](url)`. + * + * @returns {Function} + */ +export default function () { + const data = this.data(); + function replace(type) { + return (match, matchUrl, matchValue) => { + return { + type, + url: matchUrl, + title: null, + jsdoc: true, + children: [ + { + type: 'text', + value: matchValue || matchUrl + } + ] + }; + }; + } + + add('micromarkExtensions', { text }); + add('fromMarkdownExtensions', { + transforms: [ + function (markdownAST) { + return findAndReplace(markdownAST, [ + [new RegExp(linkRegExp.source, 'g'), replace('link')], + [new RegExp(tutorialRegExp.source, 'g'), replace('tutorial')] + ]); + } + ], + enter: { + literalJsDoclink(token) { + const str = this.sliceSerialize(token); + let match = null; + if (str.startsWith('{@link')) { + match = linkRegExp.exec(str); + } else { + match = tutorialRegExp.exec(str); + } + + this.enter(replace('link')(...match), token); + } + }, + exit: { + literalJsDoclink(token) { + this.exit(token); + } + } + }); + function add(field, value) { + if (data[field]) data[field].push(value); + else data[field] = [value]; + } +} diff --git a/src/remark-parse.js b/src/remark-parse.js new file mode 100644 index 000000000..79d643947 --- /dev/null +++ b/src/remark-parse.js @@ -0,0 +1,14 @@ +import { remark } from 'remark'; +import gfm from 'remark-gfm'; +import removePosition from './remark-remove-position.js'; +import jsDocLink from './remark-jsDoc-link.js'; + +/** + * Parse a string of Markdown into a Remark + * abstract syntax tree. + * + * @param {string} string markdown text + * @returns {Object} abstract syntax tree + * @private + */ +export default remark().use([jsDocLink, gfm, removePosition]).parse; diff --git a/src/remark-remove-position.js b/src/remark-remove-position.js new file mode 100644 index 000000000..fca981a64 --- /dev/null +++ b/src/remark-remove-position.js @@ -0,0 +1,16 @@ +import { visit } from 'unist-util-visit'; + +export default function () { + const data = this.data(); + add('fromMarkdownExtensions', { + transforms: [ + function (markdownAST) { + visit(markdownAST, node => delete node.position); + } + ] + }); + function add(field, value) { + if (data[field]) data[field].push(value); + else data[field] = [value]; + } +} diff --git a/src/serve/error_page.js b/src/serve/error_page.js deleted file mode 100644 index 9177d885b..000000000 --- a/src/serve/error_page.js +++ /dev/null @@ -1,40 +0,0 @@ -/* eslint no-console: 0 */ -const File = require('vinyl'); -const ansiHTML = require('ansi-html'); - -const template = - ''; - -ansiHTML.setColors({ - reset: ['fff', '800'], - black: 'aaa', // String - red: '9ff', - green: 'f9f', - yellow: '99f', - blue: 'ff9', - magenta: 'f99', - cyan: '9f9', - lightgrey: 'ccc', - darkgrey: 'aaa' -}); - -/** - * Given an error, generate an HTML page that represents the error. - * @param error parse or generation error - * @returns {Object} vinyl file object - */ -function errorPage(error) { - let errorText = error.toString(); - console.error(error); - if (error.codeFrame) { - errorText += '
      ' + ansiHTML(error.codeFrame) + '
      '; - } - return new File({ - path: 'index.html', - contents: new Buffer(template + errorText) - }); -} - -module.exports = errorPage; diff --git a/src/serve/server.js b/src/serve/server.js deleted file mode 100644 index 4fd5ea0a8..000000000 --- a/src/serve/server.js +++ /dev/null @@ -1,118 +0,0 @@ -// This file triggers https://github.com/prettier/prettier/issues/1151 - -const http = require('http'); -const mime = require('mime'); -const pify = require('pify'); -const EventEmitter = require('events').EventEmitter; -const liveReload = require('tiny-lr'); -const sep = require('path').sep; - -/** - * A static file server designed to support documentation.js's --serve - * option. It serves from an array of Vinyl File objects (virtual files in - * memory) and exposes a `setFiles` method that both replaces the set - * of files and notifies any browsers using LiveReload to reload - * and display the new content. - * @class - * @param port server port to serve on. - */ -class Server extends EventEmitter { - constructor(port, disableLiveReload) { - super(); - if (typeof port !== 'number') { - throw new Error('port argument required to initialize a server'); - } - this._port = port; - this._files = []; - this._disableLiveReload = !!disableLiveReload; - } - - /** - * Update the set of files exposed by this server and notify LiveReload - * clients - * - * @param files new content. replaces any previously-set content. - * @returns {Server} self - */ - setFiles(files) { - this._files = files; - if (this._lr) { - this._lr.changed({ body: { files: '*' } }); - } - return this; - } - - /** - * Internal handler for server requests. The server serves - * very few types of things: html, images, and so on, and it - * only handles GET requests. - * - * @param {http.Request} request content wanted - * @param {http.Response} response content returned - * @returns {undefined} nothing - * @private - */ - handler(request, response) { - let path = request.url.substring(1); - if (path === '') { - path = 'index.html'; - } - - for (let i = 0; i < this._files.length; i++) { - const file = this._files[i]; - const filePath = file.relative.split(sep).join('/'); - if (filePath === path) { - response.writeHead(200, { 'Content-Type': mime.getType(path) }); - response.end(file.contents); - return; - } - } - response.writeHead(404, { 'Content-Type': 'text/plain' }); - response.end('Not found'); - } - - start() { - /* - * Boot up the server's HTTP & LiveReload endpoints. This method - * can be called multiple times. - * - * @returns {Promise} resolved when server starts - */ - return new Promise(resolve => { - // idempotent - if (this._http) { - return resolve(this); - } - - if (!this._disableLiveReload) { - this._lr = liveReload(); - } - this._http = http.createServer(this.handler.bind(this)); - - return Promise.all([ - this._lr && pify(this._lr.listen.bind(this._lr))(35729), - pify(this._http.listen.bind(this._http))(this._port) - ]).then(() => { - this.emit('listening'); - return resolve(this); - }); - }); - } - - stop() { - /* - * Shut down the server's HTTP & LiveReload endpoints. This method - * can be called multiple times. - */ - return Promise.all([ - this._http && this._http.close(), - this._lr && this._lr.close() - ]).then(() => { - delete this._http; - delete this._lr; - return this; - }); - } -} - -module.exports = Server; diff --git a/src/sort.js b/src/sort.js index 5ea2b4d87..db27b02d5 100644 --- a/src/sort.js +++ b/src/sort.js @@ -1,7 +1,7 @@ -const parseMarkdown = require('./parse_markdown'); -const chalk = require('chalk'); -const path = require('path'); -const fs = require('fs'); +import parseMarkdown from './remark-parse.js'; +import chalk from 'chalk'; +import path from 'path'; +import fs from 'fs'; /** * Sort two documentation objects, given an optional order object. Returns @@ -12,7 +12,7 @@ const fs = require('fs'); * @returns {number} sorting value * @private */ -module.exports = function sortDocs(comments, options) { +export default function (comments, options) { if (!options || !options.toc) { return sortComments(comments, options && options.sortOrder); } @@ -21,7 +21,7 @@ module.exports = function sortDocs(comments, options) { const toBeSorted = Object.create(null); const paths = Object.create(null); const fixed = []; - const walk = function(tocPath, val) { + const walk = function (tocPath, val) { if (typeof val === 'object' && val.name) { val.kind = 'note'; indexes[val.name] = i++; @@ -59,7 +59,7 @@ module.exports = function sortDocs(comments, options) { // in the YAML list options.toc.forEach(walk.bind(null, [])); const unfixed = []; - comments.forEach(function(comment) { + comments.forEach(function (comment) { let commentPath; if (!comment.memberof && (commentPath = paths[comment.name])) { comment.path = commentPath; @@ -101,15 +101,17 @@ module.exports = function sortDocs(comments, options) { ); }); return fixed.concat(unfixed); -}; +} -function compareCommentsByName(a, b) { - const akey = a.name; - const bkey = b.name; +function compareCommentsByField(field, a, b) { + const akey = a[field]; + const bkey = b[field]; if (akey && bkey) { return akey.localeCompare(bkey, undefined, { caseFirst: 'upper' }); } + if (akey) return 1; + if (bkey) return -1; return 0; } @@ -117,10 +119,20 @@ function compareCommentsBySourceLocation(a, b) { return a.context.sortKey.localeCompare(b.context.sortKey); } +const sortFns = { + alpha: compareCommentsByField.bind(null, 'name'), + source: compareCommentsBySourceLocation, + kind: compareCommentsByField.bind(null, 'kind'), + access: compareCommentsByField.bind(null, 'access'), + memberof: compareCommentsByField.bind(null, 'memberof') +}; + function sortComments(comments, sortOrder) { - return comments.sort( - sortOrder === 'alpha' - ? compareCommentsByName - : compareCommentsBySourceLocation - ); + return comments.sort((a, b) => { + for (const sortMethod of sortOrder || ['source']) { + const r = sortFns[sortMethod](a, b); + if (r !== 0) return r; + } + return 0; + }); } diff --git a/src/ts_doctrine.js b/src/ts_doctrine.js new file mode 100644 index 000000000..d31a0a50b --- /dev/null +++ b/src/ts_doctrine.js @@ -0,0 +1,180 @@ +import generator from '@babel/generator'; +const generate = generator.default || generator; + +const namedTypes = { + TSBigIntKeyword: 'bigint', + TSNumberKeyword: 'number', + TSBooleanKeyword: 'boolean', + TSStringKeyword: 'string', + TSSymbolKeyword: 'symbol', + TSThisType: 'this', + TSObjectKeyword: 'object', + TSNeverKeyword: 'never' +}; + +const oneToOne = { + TSAnyKeyword: 'AllLiteral', + TSUnknownKeyword: 'AllLiteral', + TSNullKeyword: 'NullLiteral', + TSUndefinedKeyword: 'UndefinedLiteral', + TSVoidKeyword: 'VoidLiteral' +}; + +function propertyToField(property) { + if (!property.typeAnnotation) return null; + + let type = tsDoctrine(property.typeAnnotation.typeAnnotation); + if (property.optional) { + // Doctrine does not support optional fields but it does have something called optional types + // (which makes no sense, but let's play along). + type = { + type: 'OptionalType', + expression: type + }; + } + return { + type: 'FieldType', + key: property.key ? property.key.name || property.key.value : '', + value: type + }; +} + +/** + * Babel parses TypeScript annotations in JavaScript into AST nodes. documentation.js uses + * Babel to parse TypeScript. This method restructures those Babel-generated + * objects into objects that fit the output of Doctrine, the module we use + * to parse JSDoc annotations. This lets us use TypeScript annotations _as_ + * JSDoc annotations. + * + * @private + * @param {Object} type babel-parsed typescript type + * @returns {Object} doctrine compatible type + */ +function tsDoctrine(type) { + if (type.type in namedTypes) { + const doctrineType = { + type: 'NameExpression', + name: namedTypes[type.type] + }; + return doctrineType; + } + + // TODO: unhandled types + // TSIntersectionType, TSConditionalType, TSInferType, TSTypeOperator, TSIndexedAccessType + // TSMappedType, TSImportType, TSTypePredicate, TSTypeQuery, TSExpressionWithTypeArguments + + if (type.type in oneToOne) { + return { type: oneToOne[type.type] }; + } + + switch (type.type) { + case 'TSOptionalType': + return { + type: 'NullableType', + expression: tsDoctrine(type.typeAnnotation) + }; + case 'TSParenthesizedType': + return tsDoctrine(type.typeAnnotation); + case 'TSUnionType': + return { + type: 'UnionType', + elements: type.types.map(tsDoctrine) + }; + // [number] + // [string, boolean, number] + case 'TSTupleType': + return { + type: 'ArrayType', + elements: type.elementTypes.map(tsDoctrine) + }; + // number[] + case 'TSArrayType': + return { + type: 'TypeApplication', + expression: { + type: 'NameExpression', + name: 'Array' + }, + applications: [tsDoctrine(type.elementType)] + }; + // ...string + case 'TSRestType': + return { + type: 'RestType', + expression: tsDoctrine(type.typeAnnotation) + }; + // (y: number) => bool + case 'TSFunctionType': + case 'TSConstructorType': + case 'TSMethodSignature': + return { + type: 'FunctionType', + params: type.parameters.map(param => { + if (param.type === 'RestElement') { + return { + type: 'RestType', + expression: { + type: 'ParameterType', + name: param.argument.name, + expression: tsDoctrine(param.typeAnnotation.typeAnnotation) + } + }; + } + + return { + type: 'ParameterType', + name: param.name, + expression: tsDoctrine(param.typeAnnotation.typeAnnotation) + }; + }), + result: tsDoctrine(type.typeAnnotation.typeAnnotation) + }; + + case 'TSTypeReference': + if (type.typeParameters) { + return { + type: 'TypeApplication', + expression: { + type: 'NameExpression', + name: generate(type.typeName, { + compact: true + }).code + }, + applications: type.typeParameters.params.map(tsDoctrine) + }; + } + + return { + type: 'NameExpression', + name: generate(type.typeName, { + compact: true + }).code + }; + + case 'TSTypeLiteral': + if (type.members) { + return { + type: 'RecordType', + fields: type.members.map(propertyToField).filter(x => x) + }; + } + + return { + type: 'NameExpression', + name: generate(type.id, { + compact: true + }).code + }; + case 'TSLiteralType': + return { + type: `${type.literal.type}Type`, + value: type.literal.value + }; + default: + return { + type: 'AllLiteral' + }; + } +} + +export default tsDoctrine; diff --git a/src/type_annotation.js b/src/type_annotation.js new file mode 100644 index 000000000..b1e327ced --- /dev/null +++ b/src/type_annotation.js @@ -0,0 +1,21 @@ +import t from '@babel/types'; +import flowDoctrine from './flow_doctrine.js'; +import tsDoctrine from './ts_doctrine.js'; + +function typeAnnotation(type) { + if (t.isFlow(type)) { + if (t.isTypeAnnotation(type)) { + type = type.typeAnnotation; + } + + return flowDoctrine(type); + } + + if (t.isTSTypeAnnotation(type)) { + type = type.typeAnnotation; + } + + return tsDoctrine(type); +} + +export default typeAnnotation; diff --git a/src/walk.js b/src/walk.js index 851229858..255d83160 100644 --- a/src/walk.js +++ b/src/walk.js @@ -7,7 +7,7 @@ * @param {Object} [options] options passed through to walker function * @returns {Array} comments */ -module.exports.walk = function walk(comments, fn, options) { +export default function walk(comments, fn, options) { comments.forEach(comment => { fn(comment, options); for (const scope in comment.members) { @@ -15,4 +15,4 @@ module.exports.walk = function walk(comments, fn, options) { } }); return comments; -}; +} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 1e56dcf8b..000000000 --- a/yarn.lock +++ /dev/null @@ -1,7176 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.2" - "@babel/helpers" "^7.1.2" - "@babel/parser" "^7.1.2" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.1.2" - convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" - dependencies: - "@babel/types" "^7.0.0" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.1.2", "@babel/generator@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" - dependencies: - "@babel/types" "^7.1.3" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-builder-react-jsx@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" - dependencies: - "@babel/types" "^7.0.0" - esutils "^2.0.0" - -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" - dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" - -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-transforms@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" - -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" - dependencies: - lodash "^4.17.10" - -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" - dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-wrap-function@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helpers@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" - dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.1.2" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@7.1.3", "@babel/parser@^7.1.2", "@babel/parser@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" - -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.0.tgz#a7cd42cb3c12aec52e24375189a47b39759b783e" - -"@babel/plugin-proposal-async-generator-functions@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.0.0" - -"@babel/plugin-proposal-class-properties@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4" - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - -"@babel/plugin-proposal-decorators@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz#79829bd75fced6581ec6c7ab1930e8d738e892e7" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/plugin-syntax-decorators" "^7.1.0" - -"@babel/plugin-proposal-do-expressions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.0.0.tgz#4fe2f29c56a4b18d292caab0dfcb8119c89cc8d8" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-do-expressions" "^7.0.0" - -"@babel/plugin-proposal-export-default-from@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.0.0.tgz#a057bbfd4649facfe39f33a537e18554bdd2b5da" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - -"@babel/plugin-proposal-export-namespace-from@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.0.0.tgz#ce847cc62c3626547107a1b835592b8ee494af51" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-namespace-from" "^7.0.0" - -"@babel/plugin-proposal-function-bind@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.0.0.tgz#030bb3dd7affb5a0df8326cdd3e9f6776e95a225" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-function-bind" "^7.0.0" - -"@babel/plugin-proposal-function-sent@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.1.0.tgz#1c4eb7748812c89b772a2d699cf6a9c074f3e166" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/plugin-syntax-function-sent" "^7.0.0" - -"@babel/plugin-proposal-json-strings@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.0.0" - -"@babel/plugin-proposal-logical-assignment-operators@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.0.0.tgz#f2a290bcb266e8c9ddae08c6bae5ad3df57c362d" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.0.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.0.0.tgz#b72ec31adf612d062dc0348316246127a451e45f" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - -"@babel/plugin-proposal-numeric-separator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.0.0.tgz#08aa02ce62481a84bfd0d9ce7a718adaaaa773dd" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-numeric-separator" "^7.0.0" - -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" - -"@babel/plugin-proposal-optional-chaining@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0.tgz#3d344d4152253379b8758e7d041148e8787c4a9d" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - -"@babel/plugin-proposal-pipeline-operator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.0.0.tgz#ab60169a5c4a598292de59a14f9810d4e47b00b8" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-pipeline-operator" "^7.0.0" - -"@babel/plugin-proposal-throw-expressions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.0.0.tgz#fd44563c742c5e0df764b1a41ab86b22dde5a5b7" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-throw-expressions" "^7.0.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" - -"@babel/plugin-syntax-async-generators@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-class-properties@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-decorators@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz#2fa7c1a7905a299c9853ebcef340306675f9cbdc" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-do-expressions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.0.0.tgz#069119d1d2fd2c13a3203b172619af5f95b6f696" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz#6dfb7d8b6c3be14ce952962f658f3b7eb54c33ee" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-export-default-from@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.0.0.tgz#084b639bce3d42f3c5bf3f68ccb42220bb2d729d" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-export-namespace-from@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.0.0.tgz#17a7389a1d2571ac4d9b77ea2defa74a930edf5d" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-flow@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0.tgz#70638aeaad9ee426bc532e51523cff8ff02f6f17" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-function-bind@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.0.0.tgz#04ad5fac3f68460ef028b1d92abc09781f2e7478" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-function-sent@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.0.0.tgz#583f904c86019dbbf486170e79e2d8f2d373f543" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-import-meta@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.0.0.tgz#ca946b73216c29c39a55ef2d739097fee8a85d69" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-jsx@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.0.0.tgz#8c567dcc4caea33d2743307758684656184d20cc" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.0.0.tgz#b60931d5a15da82625fff6657c39419969598743" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-numeric-separator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.0.0.tgz#9594c7ce6ce8089a14d732cb9f6b1eeb047413ba" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-chaining@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0.tgz#1e6ecba124310b5d3a8fc1e00d50b1c4c2e05e68" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-pipeline-operator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.0.0.tgz#29106ddb293898192780ff48159c77e6f20c1768" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-throw-expressions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.0.0.tgz#c0764da188afd99828ffdf78085c5f3c40bb661e" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - -"@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" - -"@babel/plugin-transform-classes@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/plugin-transform-duplicate-keys@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz#c40ced34c2783985d90d9f9ac77a13e6fb396a01" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - -"@babel/plugin-transform-for-of@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-commonjs@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - -"@babel/plugin-transform-modules-systemjs@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4" - dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-umd@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - -"@babel/plugin-transform-parameters@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" - dependencies: - "@babel/helper-call-delegate" "^7.1.0" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz#524379e4eca5363cd10c4446ba163f093da75f3e" - dependencies: - "@babel/helper-builder-react-jsx" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - -"@babel/plugin-transform-regenerator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" - dependencies: - regenerator-transform "^0.13.3" - -"@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/preset-env@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.1.0" - "@babel/plugin-proposal-json-strings" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" - "@babel/plugin-syntax-async-generators" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.1.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.1.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-dotall-regex" "^7.0.0" - "@babel/plugin-transform-duplicate-keys" "^7.0.0" - "@babel/plugin-transform-exponentiation-operator" "^7.1.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.1.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-amd" "^7.1.0" - "@babel/plugin-transform-modules-commonjs" "^7.1.0" - "@babel/plugin-transform-modules-systemjs" "^7.0.0" - "@babel/plugin-transform-modules-umd" "^7.1.0" - "@babel/plugin-transform-new-target" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.1.0" - "@babel/plugin-transform-parameters" "^7.1.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typeof-symbol" "^7.0.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - browserslist "^4.1.0" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.3.0" - -"@babel/preset-flow@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - -"@babel/preset-react@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - -"@babel/preset-stage-0@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.0.0.tgz#999aaec79ee8f0a763042c68c06539c97c6e0646" - -"@babel/template@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.0.tgz#58cc9572e1bfe24fe1537fdf99d839d53e517e22" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/template@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.1.2" - "@babel/types" "^7.1.2" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.0.tgz#503ec6669387efd182c3888c4eec07bcc45d91b2" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.0.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - debug "^3.1.0" - globals "^11.1.0" - lodash "^4.17.10" - -"@babel/traverse@^7.1.4": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.3" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.3" - "@babel/types" "^7.1.3" - debug "^3.1.0" - globals "^11.1.0" - lodash "^4.17.10" - -"@babel/types@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118" - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" - -"@babel/types@^7.1.2", "@babel/types@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" - -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - dependencies: - any-observable "^0.3.0" - -"@types/node@^10.11.7": - version "10.12.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.27.tgz#eb3843f15d0ba0986cc7e4d734d2ee8b50709ef8" - -"@types/semver@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45" - -JSONStream@^1.0.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.4.tgz#615bb2adb0cd34c8f4c447b5f6512fa1d8f16a2e" - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" - -abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -acorn-globals@^1.0.4: - version "1.0.9" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" - dependencies: - acorn "^2.1.0" - -acorn-globals@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-jsx@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" - dependencies: - acorn "^5.0.3" - -acorn-walk@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - -acorn@^2.1.0, acorn@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" - -acorn@^5.0.3, acorn@^5.2.1, acorn@^5.5.3, acorn@^5.6.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - -acorn@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818" - -ajv-keywords@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - -ajv@^6.0.1, ajv@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.5.5: - version "6.9.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.9.2.tgz#4927adb83e7f48e5a32b45729744c71ec39c9c7b" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - -ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.0.1, ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - dependencies: - buffer-equal "^1.0.0" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - dependencies: - default-require-extensions "^1.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1@0.1.11: - version "0.1.11" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -async@0.8.x: - version "0.8.0" - resolved "https://registry.yarnpkg.com/async/-/async-0.8.0.tgz#ee65ec77298c2ff1456bc4418a052d0f06435112" - -async@^2.1.4, async@^2.5.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - dependencies: - lodash "^4.17.11" - -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - -aws-sign2@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - -babel-eslint@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - eslint-scope "3.7.1" - eslint-visitor-keys "^1.0.0" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-jest@^23.4.2, babel-jest@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" - dependencies: - babel-plugin-istanbul "^4.1.6" - babel-preset-jest "^23.2.0" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-istanbul@^4.1.6: - version "4.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" - -babel-plugin-jest-hoist@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" - -babel-plugin-syntax-object-rest-spread@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-preset-jest@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" - dependencies: - babel-plugin-jest-hoist "^23.2.0" - babel-plugin-syntax-object-rest-spread "^6.13.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -bail@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - dependencies: - tweetnacl "^0.14.3" - -binary-extensions@^1.0.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" - -bluebird@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -boom@0.4.x: - version "0.4.2" - resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" - dependencies: - hoek "0.9.x" - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - -browser-resolve@^1.11.3, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - dependencies: - resolve "1.1.7" - -browserslist@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6" - dependencies: - caniuse-lite "^1.0.30000884" - electron-to-chromium "^1.3.62" - node-releases "^1.0.0-alpha.11" - -bser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" - dependencies: - node-int64 "^0.4.0" - -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cached-path-relative@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-lite@^1.0.30000884: - version "1.0.30000885" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984" - -capture-exit@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" - dependencies: - rsvp "^3.3.3" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -ccount@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -character-entities-html4@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" - -character-entities-legacy@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz#7c6defb81648498222c9855309953d05f4d63a9c" - -character-entities@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz#58c8f371c0774ef0ba9b2aca5f00d8f100e6e363" - -character-reference-invalid@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz#21e421ad3d84055952dab4a43a04e73cd425d3ed" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - -chdir@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/chdir/-/chdir-0.0.0.tgz#c29bdb85f391834c83ddbf090f18a11b0ed96bee" - -chokidar@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" - optionalDependencies: - fsevents "^1.2.2" - -chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@2.2.x: - version "2.2.23" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-2.2.23.tgz#0590b5478b516c4903edc2d89bd3fdbdd286328c" - dependencies: - commander "2.2.x" - -cli-cursor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cli@0.6.x: - version "0.6.6" - resolved "https://registry.yarnpkg.com/cli/-/cli-0.6.6.tgz#02ad44a380abf27adac5e6f0cdd7b043d74c53e3" - dependencies: - exit "0.1.2" - glob "~ 3.2.1" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - -cloneable-readable@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz#ce05cf49e54c3277ae573036a26851ba430a0091" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" - dependencies: - delayed-stream "~1.0.0" - -combined-stream@~0.0.4: - version "0.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" - dependencies: - delayed-stream "0.0.5" - -comma-separated-tokens@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.5.tgz#b13793131d9ea2d2431cf5b507ddec258f0ce0db" - dependencies: - trim "0.0.1" - -commander@2.2.x: - version "2.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.2.0.tgz#175ad4b9317f3ff615f201c1e57224f55a3e91df" - -commander@^2.14.1, commander@^2.9.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" - -commander@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - -commander@~2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - -compare-func@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" - dependencies: - array-ify "^1.0.0" - dot-prop "^3.0.0" - -component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.4.10, concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@~1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-browserify@1.1.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - -conventional-changelog-angular@^1.6.6: - version "1.6.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-atom@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14" - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47" - dependencies: - q "^1.5.1" - -conventional-changelog-core@^2.0.11: - version "2.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287" - dependencies: - conventional-changelog-writer "^3.0.9" - conventional-commits-parser "^2.1.7" - dateformat "^3.0.0" - get-pkg-repo "^1.0.0" - git-raw-commits "^1.3.6" - git-remote-origin-url "^2.0.0" - git-semver-tags "^1.3.6" - lodash "^4.2.1" - normalize-package-data "^2.3.5" - q "^1.5.1" - read-pkg "^1.1.0" - read-pkg-up "^1.0.1" - through2 "^2.0.0" - -conventional-changelog-ember@^0.3.12: - version "0.3.12" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400" - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3" - dependencies: - q "^1.5.1" - -conventional-changelog-express@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" - dependencies: - q "^1.4.1" - -conventional-changelog-jscs@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" - dependencies: - q "^1.4.1" - -conventional-changelog-jshint@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8" - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-preset-loader@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" - -conventional-changelog-writer@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634" - dependencies: - compare-func "^1.3.1" - conventional-commits-filter "^1.1.6" - dateformat "^3.0.0" - handlebars "^4.0.2" - json-stringify-safe "^5.0.1" - lodash "^4.2.1" - meow "^4.0.0" - semver "^5.5.0" - split "^1.0.0" - through2 "^2.0.0" - -conventional-changelog@^1.1.0: - version "1.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0" - dependencies: - conventional-changelog-angular "^1.6.6" - conventional-changelog-atom "^0.2.8" - conventional-changelog-codemirror "^0.3.8" - conventional-changelog-core "^2.0.11" - conventional-changelog-ember "^0.3.12" - conventional-changelog-eslint "^1.0.9" - conventional-changelog-express "^0.3.6" - conventional-changelog-jquery "^0.1.0" - conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.3.8" - conventional-changelog-preset-loader "^1.1.8" - -conventional-commit-types@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz#5db95739d6c212acbe7b6f656a11b940baa68946" - -conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" - dependencies: - is-subset "^0.1.1" - modify-values "^1.0.0" - -conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7: - version "2.1.7" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.0" - lodash "^4.2.1" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - trim-off-newlines "^1.0.0" - -conventional-recommended-bump@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375" - dependencies: - concat-stream "^1.4.10" - conventional-commits-filter "^1.1.1" - conventional-commits-parser "^2.1.1" - git-raw-commits "^1.3.0" - git-semver-tags "^1.3.0" - meow "^3.3.0" - object-assign "^4.0.1" - -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - dependencies: - safe-buffer "~5.1.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^5.0.2: - version "5.0.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@0.2.x: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" - dependencies: - boom "0.4.x" - -csslint@0.10.x: - version "0.10.0" - resolved "https://registry.yarnpkg.com/csslint/-/csslint-0.10.0.tgz#3a6a04e7565c8e9d19beb49767c7ec96e8365805" - dependencies: - parserlib "~0.2.2" - -cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", "cssom@>= 0.3.2 < 0.4.0": - version "0.3.6" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" - -"cssstyle@>= 0.2.36 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - dependencies: - cssom "0.3.x" - -cssstyle@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.1.tgz#3aceb2759eaf514ac1a21628d723d6043a819495" - dependencies: - cssom "0.3.x" - -ctype@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -cz-conventional-changelog@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz#2f4bc7390e3244e4df293e6ba351e4c740a7c764" - dependencies: - conventional-commit-types "^2.0.0" - lodash.map "^4.5.1" - longest "^1.0.1" - right-pad "^1.0.1" - word-wrap "^1.0.3" - -dargs@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" - dependencies: - number-is-nan "^1.0.0" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -date-fns@^1.27.2: - version "1.29.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - dependencies: - ms "^2.1.1" - -debug@~0.7.0: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - dependencies: - strip-bom "^2.0.0" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -detab@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.1.tgz#531f5e326620e2fd4f03264a905fb3bcc8af4df4" - dependencies: - repeat-string "^1.5.4" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - -detective@^4.0.0: - version "4.7.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e" - dependencies: - acorn "^5.2.1" - defined "^1.0.0" - -diff@^1.3.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -disparity@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/disparity/-/disparity-2.0.0.tgz#57ddacb47324ae5f58d2cc0da886db4ce9eeb718" - dependencies: - ansi-styles "^2.0.1" - diff "^1.3.2" - -doctrine-temporary-fork@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/doctrine-temporary-fork/-/doctrine-temporary-fork-2.0.1.tgz#23f0b6275c65f48893324b02338178e496b2e4bf" - dependencies: - esutils "^2.0.2" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - -documentation-schema@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/documentation-schema/-/documentation-schema-0.0.1.tgz#6ee05b47b08a04d024132d75893d378a36572209" - -dom-serializer@0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - dependencies: - webidl-conversions "^4.0.2" - -domhandler@2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domutils@1.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" - dependencies: - is-obj "^1.0.0" - -dotgitignore@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-1.0.3.tgz#a442cbde7dc20dff51cdb849e4c5a64568c07923" - dependencies: - find-up "^2.1.0" - minimatch "^3.0.4" - -duplexer2@^0.1.2, duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -duplexify@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -editorconfig@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.2.tgz#047be983abb9ab3c2eefe5199cb2b7c5689f0702" - dependencies: - "@types/node" "^10.11.7" - "@types/semver" "^5.5.0" - commander "^2.19.0" - lru-cache "^4.1.3" - semver "^5.6.0" - sigmund "^1.0.1" - -electron-to-chromium@^1.3.62: - version "1.3.70" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz#ded377256d92d81b4257d36c65aa890274afcfd2" - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.6.1, escodegen@^1.9.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.0.1.tgz#479214f64c1a4b344040924bfb97543db334b7b1" - dependencies: - get-stdin "^6.0.0" - -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@^5.0.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.6.0.tgz#b6f7806041af01f71b3f1895cbb20971ea4b6223" - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^4.0.0" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - imurmurhash "^0.1.4" - inquirer "^6.1.0" - is-resolvable "^1.1.0" - js-yaml "^3.12.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.5" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^2.0.0" - require-uncached "^1.0.3" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^4.0.3" - text-table "^0.2.0" - -espree@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" - dependencies: - acorn "^5.6.0" - acorn-jsx "^4.1.1" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - dependencies: - merge "^1.2.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - -exit@0.1.2, exit@0.1.x, exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expect@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" - dependencies: - ansi-styles "^3.2.0" - jest-diff "^23.6.0" - jest-get-type "^22.1.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - -extend@~2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" - -external-editor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - dependencies: - bser "^2.0.0" - -figures@^1.5.0, figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fileset@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -find-parent-dir@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - dependencies: - locate-path "^3.0.0" - -findup-sync@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.2.1.tgz#e0a90a450075c49466ee513732057514b81e878c" - dependencies: - glob "~4.3.0" - -flagged-respawn@~0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" - -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -flush-write-stream@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -forever-agent@~0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" - dependencies: - async "~0.9.0" - combined-stream "~0.0.4" - mime "~1.2.11" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - dependencies: - null-check "^1.0.0" - -fs-extra@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fsevents@^1.2.3: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gear-lib@^0.9.2: - version "0.9.2" - resolved "https://registry.yarnpkg.com/gear-lib/-/gear-lib-0.9.2.tgz#bc8d461ebc81ecaffe99c1da82abe0f56eb93540" - dependencies: - async "0.8.x" - csslint "0.10.x" - gear ">= 0.8.x" - glob "3.2.x" - handlebars "2.0.x" - jshint "2.5.x" - jslint "0.3.x" - knox "0.8.x" - less "1.7.x" - mime "1.2.x" - uglify-js "2.4.x" - -"gear@>= 0.8.x", gear@^0.9.7: - version "0.9.7" - resolved "https://registry.yarnpkg.com/gear/-/gear-0.9.7.tgz#1ead19eee639319d8e2e655494c61bd8956e777f" - dependencies: - async "0.8.x" - liftoff "2.0.x" - minimist "0.1.x" - mkdirp "0.5.x" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - -get-own-enumerable-property-symbols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" - -get-pkg-repo@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" - dependencies: - hosted-git-info "^2.1.4" - meow "^3.3.0" - normalize-package-data "^2.3.0" - parse-github-repo-url "^1.3.0" - through2 "^2.0.0" - -get-port@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.0.0.tgz#373c85960138ee20027c070e3cb08019fea29816" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -git-raw-commits@^1.3.0, git-raw-commits@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" - dependencies: - dargs "^4.0.1" - lodash.template "^4.0.2" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^1.3.0, git-semver-tags@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" - dependencies: - meow "^4.0.0" - semver "^5.5.0" - -git-up@^2.0.0: - version "2.0.10" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-2.0.10.tgz#20fe6bafbef4384cae253dc4f463c49a0c3bd2ec" - dependencies: - is-ssh "^1.3.0" - parse-url "^1.3.0" - -git-url-parse@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-10.0.1.tgz#75f153b24ac7297447fc583cf9fac23a5ae687c1" - dependencies: - git-up "^2.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - dependencies: - ini "^1.3.2" - -github-slugger@1.2.0, github-slugger@^1.0.0, github-slugger@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.0.tgz#8ada3286fd046d8951c3c952a8d7854cfd90fd9a" - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob@3.2.x, "glob@~ 3.2.1", glob@~3.2.8: - version "3.2.11" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" - dependencies: - inherits "2" - minimatch "0.3" - -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~4.3.0: - version "4.3.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-4.3.5.tgz#80fbb08ca540f238acce5d11d1e9bc41e75173d3" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "^2.0.1" - once "^1.3.0" - -globals-docs@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.0.tgz#f2c647544eb6161c7c38452808e16e693c2dafbb" - -globals@^11.1.0, globals@^11.7.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -graceful-fs@^4.0.0, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - -graceful-fs@~3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" - dependencies: - natives "^1.1.0" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - -handlebars@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-2.0.0.tgz#6e9d7f8514a3467fa5e9f82cc158ecfc1d5ac76f" - dependencies: - optimist "~0.3" - optionalDependencies: - uglify-js "~2.3" - -handlebars@^4.0.2, handlebars@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a" - dependencies: - async "^2.5.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -hast-util-is-element@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.1.tgz#c76e8aafbdb6e5c83265bf50324e2f2e024eb12a" - -hast-util-sanitize@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-1.2.0.tgz#1a46bc8e8554f4747d219dd1d85f9cb245b1b08d" - dependencies: - xtend "^4.0.1" - -hast-util-to-html@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-4.0.1.tgz#3666b05afb62bd69f8f5e6c94db04dea19438e2a" - dependencies: - ccount "^1.0.0" - comma-separated-tokens "^1.0.1" - hast-util-is-element "^1.0.0" - hast-util-whitespace "^1.0.0" - html-void-elements "^1.0.0" - property-information "^4.0.0" - space-separated-tokens "^1.0.0" - stringify-entities "^1.0.1" - unist-util-is "^2.0.0" - xtend "^4.0.1" - -hast-util-whitespace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.1.tgz#d67da2c87637b1ce1d85dd15b270ba057930149a" - -hawk@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" - dependencies: - boom "0.4.x" - cryptiles "0.2.x" - hoek "0.9.x" - sntp "0.2.x" - -he@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -highlight.js@^9.15.5: - version "9.15.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.5.tgz#636ac5a95b9309c6a0a28c3707e8d3e6d2c7d729" - dependencies: - bluebird "^3.5.3" - commander "^2.19.0" - del "^3.0.0" - gear "^0.9.7" - gear-lib "^0.9.2" - glob "^7.1.3" - js-beautify "^1.8.9" - jsdom "9.2.1" - lodash "^4.17.11" - tiny-worker "^2.1.2" - -hoek@0.9.x: - version "0.9.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.7.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - dependencies: - whatwg-encoding "^1.0.1" - -html-void-elements@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.3.tgz#956707dbecd10cf658c92c5d27fee763aa6aa982" - -htmlparser2@3.8.x: - version "3.8.3" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" - dependencies: - domelementtype "1" - domhandler "2.3" - domutils "1.5" - entities "1.0" - readable-stream "1.1" - -http-parser-js@>=0.4.0: - version "0.4.13" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" - -http-signature@~0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" - dependencies: - asn1 "0.1.11" - assert-plus "^0.1.5" - ctype "0.5.3" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -husky@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" - dependencies: - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" - -iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -ini@^1.3.2, ini@^1.3.3, ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -inquirer@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.0" - figures "^2.0.0" - lodash "^4.17.10" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.1.0" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz#1fa6e49213cb7885b75d15862fb3f3d96c884f41" - -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - -is-alphanumerical@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz#1138e9ae5040158dc6ff76b820acd6b7a181fd40" - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-buffer@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - dependencies: - ci-info "^1.5.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-decimal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz#894662d6a8709d307f3a276ca4339c8fa5dff0ff" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-generator-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835" - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-obj@^1.0.0, is-obj@^1.0.1: - version "1.0.1" - resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - dependencies: - symbol-observable "^1.1.0" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - dependencies: - is-unc-path "^1.0.0" - -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - -is-ssh@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.0.tgz#ebea1169a2614da392a63740366c3ce049d8dff6" - dependencies: - protocols "^1.1.0" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - dependencies: - has-symbols "^1.0.0" - -is-text-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - dependencies: - text-extensions "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - dependencies: - unc-path-regex "^0.1.2" - -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - -is-whitespace-character@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz#ede53b4c6f6fb3874533751ec9280d01928d03ed" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is-word-character@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz#46a5dac3f2a1840898b91e576cd40d493f3ae553" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -istanbul-api@^1.3.1: - version "1.3.7" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" - dependencies: - async "^2.1.4" - fileset "^2.0.2" - istanbul-lib-coverage "^1.2.1" - istanbul-lib-hook "^1.2.2" - istanbul-lib-instrument "^1.10.2" - istanbul-lib-report "^1.1.5" - istanbul-lib-source-maps "^1.2.6" - istanbul-reports "^1.5.1" - js-yaml "^3.7.0" - mkdirp "^0.5.1" - once "^1.4.0" - -istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" - -istanbul-lib-hook@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.1" - semver "^5.3.0" - -istanbul-lib-report@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" - dependencies: - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" - dependencies: - handlebars "^4.0.3" - -jest-changed-files@^23.4.2: - version "23.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" - dependencies: - throat "^4.0.0" - -jest-cli@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.1.11" - import-local "^1.0.0" - is-ci "^1.0.10" - istanbul-api "^1.3.1" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-instrument "^1.10.1" - istanbul-lib-source-maps "^1.2.4" - jest-changed-files "^23.4.2" - jest-config "^23.6.0" - jest-environment-jsdom "^23.4.0" - jest-get-type "^22.1.0" - jest-haste-map "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - jest-resolve-dependencies "^23.6.0" - jest-runner "^23.6.0" - jest-runtime "^23.6.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - jest-watcher "^23.4.0" - jest-worker "^23.2.0" - micromatch "^2.3.11" - node-notifier "^5.2.1" - prompts "^0.1.9" - realpath-native "^1.0.0" - rimraf "^2.5.4" - slash "^1.0.0" - string-length "^2.0.0" - strip-ansi "^4.0.0" - which "^1.2.12" - yargs "^11.0.0" - -jest-config@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" - dependencies: - babel-core "^6.0.0" - babel-jest "^23.6.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^23.4.0" - jest-environment-node "^23.4.0" - jest-get-type "^22.1.0" - jest-jasmine2 "^23.6.0" - jest-regex-util "^23.3.0" - jest-resolve "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - micromatch "^2.3.11" - pretty-format "^23.6.0" - -jest-diff@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" - dependencies: - chalk "^2.0.1" - diff "^3.2.0" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" - -jest-docblock@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" - dependencies: - detect-newline "^2.1.0" - -jest-each@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" - dependencies: - chalk "^2.0.1" - pretty-format "^23.6.0" - -jest-environment-jsdom@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" - dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" - jsdom "^11.5.1" - -jest-environment-node@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" - dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" - -jest-get-type@^22.1.0: - version "22.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" - -jest-haste-map@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" - dependencies: - fb-watchman "^2.0.0" - graceful-fs "^4.1.11" - invariant "^2.2.4" - jest-docblock "^23.2.0" - jest-serializer "^23.0.1" - jest-worker "^23.2.0" - micromatch "^2.3.11" - sane "^2.0.0" - -jest-jasmine2@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" - dependencies: - babel-traverse "^6.0.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^23.6.0" - is-generator-fn "^1.0.0" - jest-diff "^23.6.0" - jest-each "^23.6.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - pretty-format "^23.6.0" - -jest-leak-detector@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" - dependencies: - pretty-format "^23.6.0" - -jest-matcher-utils@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" - dependencies: - chalk "^2.0.1" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" - -jest-message-util@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" - dependencies: - "@babel/code-frame" "^7.0.0-beta.35" - chalk "^2.0.1" - micromatch "^2.3.11" - slash "^1.0.0" - stack-utils "^1.0.1" - -jest-mock@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" - -jest-regex-util@^23.3.0: - version "23.3.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" - -jest-resolve-dependencies@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" - dependencies: - jest-regex-util "^23.3.0" - jest-snapshot "^23.6.0" - -jest-resolve@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" - dependencies: - browser-resolve "^1.11.3" - chalk "^2.0.1" - realpath-native "^1.0.0" - -jest-runner@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" - dependencies: - exit "^0.1.2" - graceful-fs "^4.1.11" - jest-config "^23.6.0" - jest-docblock "^23.2.0" - jest-haste-map "^23.6.0" - jest-jasmine2 "^23.6.0" - jest-leak-detector "^23.6.0" - jest-message-util "^23.4.0" - jest-runtime "^23.6.0" - jest-util "^23.4.0" - jest-worker "^23.2.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.1.6" - chalk "^2.0.1" - convert-source-map "^1.4.0" - exit "^0.1.2" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.11" - jest-config "^23.6.0" - jest-haste-map "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - jest-resolve "^23.6.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - micromatch "^2.3.11" - realpath-native "^1.0.0" - slash "^1.0.0" - strip-bom "3.0.0" - write-file-atomic "^2.1.0" - yargs "^11.0.0" - -jest-serializer@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" - -jest-snapshot@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" - dependencies: - babel-types "^6.0.0" - chalk "^2.0.1" - jest-diff "^23.6.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-resolve "^23.6.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^23.6.0" - semver "^5.5.0" - -jest-util@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" - dependencies: - callsites "^2.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.11" - is-ci "^1.0.10" - jest-message-util "^23.4.0" - mkdirp "^0.5.1" - slash "^1.0.0" - source-map "^0.6.0" - -jest-validate@^23.5.0, jest-validate@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" - dependencies: - chalk "^2.0.1" - jest-get-type "^22.1.0" - leven "^2.1.0" - pretty-format "^23.6.0" - -jest-watcher@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.1" - string-length "^2.0.0" - -jest-worker@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" - dependencies: - merge-stream "^1.0.1" - -jest@^23.0.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" - dependencies: - import-local "^1.0.0" - jest-cli "^23.6.0" - -js-beautify@^1.8.9: - version "1.8.9" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.8.9.tgz#08e3c05ead3ecfbd4f512c3895b1cda76c87d523" - dependencies: - config-chain "^1.1.12" - editorconfig "^0.15.2" - glob "^7.1.3" - mkdirp "~0.5.0" - nopt "~4.0.1" - -js-levenshtein@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.3.tgz#3ef627df48ec8cf24bacf05c0f184ff30ef413c5" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.10.0, js-yaml@^3.12.0, js-yaml@^3.9.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.7.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsdom@9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.2.1.tgz#061cbccc6e563d14493f653af92eadc3c0d39910" - dependencies: - abab "^1.0.0" - acorn "^2.4.0" - acorn-globals "^1.0.4" - array-equal "^1.0.0" - cssom ">= 0.3.0 < 0.4.0" - cssstyle ">= 0.2.36 < 0.3.0" - escodegen "^1.6.1" - iconv-lite "^0.4.13" - nwmatcher ">= 1.3.7 < 2.0.0" - parse5 "^1.5.1" - request "^2.55.0" - sax "^1.1.4" - symbol-tree ">= 3.1.0 < 4.0.0" - tough-cookie "^2.2.0" - webidl-conversions "^3.0.1" - whatwg-url "^3.0.0" - xml-name-validator ">= 2.0.1 < 3.0.0" - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -jshint@2.5.x: - version "2.5.11" - resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.5.11.tgz#e2d95858bbb1aa78300108a2e81099fb095622e0" - dependencies: - cli "0.6.x" - console-browserify "1.1.x" - exit "0.1.x" - htmlparser2 "3.8.x" - minimatch "1.0.x" - shelljs "0.3.x" - strip-json-comments "1.0.x" - underscore "1.6.x" - -jslint@0.3.x: - version "0.3.4" - resolved "https://registry.yarnpkg.com/jslint/-/jslint-0.3.4.tgz#fb768ac8de0641fcc570c87ca1fbd28e293c8d75" - dependencies: - nopt "~1.0.0" - optionalDependencies: - glob "~3.2.8" - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json-stable-stringify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -kleur@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" - -knox@0.8.x: - version "0.8.10" - resolved "https://registry.yarnpkg.com/knox/-/knox-0.8.10.tgz#6a2edcdac1d2ae379d1e1994d559b95c283b2588" - dependencies: - debug "~0.7.0" - mime "*" - stream-counter "~0.1.0" - xml2js "0.2.x" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - dependencies: - flush-write-stream "^1.0.2" - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - -less@1.7.x: - version "1.7.5" - resolved "https://registry.yarnpkg.com/less/-/less-1.7.5.tgz#4f220cf7288a27eaca739df6e4808a2d4c0d5756" - optionalDependencies: - clean-css "2.2.x" - graceful-fs "~3.0.2" - mime "~1.2.11" - mkdirp "~0.5.0" - request "~2.40.0" - source-map "0.1.x" - -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -liftoff@2.0.x: - version "2.0.3" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.0.3.tgz#fbab25362a506ac28a3db0c55cde9562fbd70456" - dependencies: - extend "~2.0.0" - findup-sync "~0.2.0" - flagged-respawn "~0.3.0" - minimist "~1.1.0" - resolve "~1.1.0" - -lint-staged@^7.2.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.3.0.tgz#90ff33e5ca61ed3dbac35b6f6502dbefdc0db58d" - dependencies: - chalk "^2.3.1" - commander "^2.14.1" - cosmiconfig "^5.0.2" - debug "^3.1.0" - dedent "^0.7.0" - execa "^0.9.0" - find-parent-dir "^0.3.0" - is-glob "^4.0.0" - is-windows "^1.0.2" - jest-validate "^23.5.0" - listr "^0.14.1" - lodash "^4.17.5" - log-symbols "^2.2.0" - micromatch "^3.1.8" - npm-which "^3.0.1" - p-map "^1.1.1" - path-is-inside "^1.0.2" - pify "^3.0.0" - please-upgrade-node "^3.0.2" - staged-git-files "1.1.1" - string-argv "^0.0.2" - stringify-object "^3.2.2" - -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - -listr-update-renderer@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^1.0.2" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" - dependencies: - chalk "^1.1.3" - cli-cursor "^1.0.2" - date-fns "^1.27.2" - figures "^1.7.0" - -listr@^0.14.1: - version "0.14.2" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.2.tgz#cbe44b021100a15376addfc2d79349ee430bfe14" - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.4.0" - listr-verbose-renderer "^0.4.0" - p-map "^1.1.1" - rxjs "^6.1.0" - -livereload-js@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.3.0.tgz#c3ab22e8aaf5bf3505d80d098cbad67726548c9a" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash._reinterpolate@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - -lodash.map@^4.5.1: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - -lodash.template@^4.0.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" - dependencies: - lodash._reinterpolate "~3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" - dependencies: - lodash._reinterpolate "~3.0.0" - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - dependencies: - chalk "^1.0.0" - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - dependencies: - chalk "^2.0.1" - -log-update@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" - dependencies: - ansi-escapes "^1.0.0" - cli-cursor "^1.0.2" - -longest-streak@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz#2421b6ba939a443bb9ffebf596585a50b4c38e2e" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lru-cache@2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" - -lru-cache@^4.0.1, lru-cache@^4.1.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz#e639cbde7b99c841c0bacc8a07982873b46d2122" - -markdown-table@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - -mdast-util-compact@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz#c12ebe16fffc84573d3e19767726de226e95f649" - dependencies: - unist-util-visit "^1.1.0" - -mdast-util-definitions@^1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.3.tgz#49f936b09207c45b438db19551652934312f04f0" - dependencies: - unist-util-visit "^1.0.0" - -mdast-util-inject@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz#db06b8b585be959a2dcd2f87f472ba9b756f3675" - dependencies: - mdast-util-to-string "^1.0.0" - -mdast-util-to-hast@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-3.0.2.tgz#26b1971f49d6db1e3428463a12e66c89db5021cb" - dependencies: - collapse-white-space "^1.0.0" - detab "^2.0.0" - mdast-util-definitions "^1.2.0" - mdurl "^1.0.1" - trim "0.0.1" - trim-lines "^1.0.0" - unist-builder "^1.0.1" - unist-util-generated "^1.1.0" - unist-util-position "^3.0.0" - unist-util-visit "^1.1.0" - xtend "^4.0.1" - -mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.5.tgz#3552b05428af22ceda34f156afe62ec8e6d731ca" - -mdast-util-toc@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-2.1.0.tgz#82b6b218577bb0e67b23abf5c3f7ac73a4b5389f" - dependencies: - github-slugger "^1.1.1" - mdast-util-to-string "^1.0.2" - unist-util-visit "^1.1.0" - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist "^1.1.3" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - dependencies: - readable-stream "^2.0.1" - -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - -micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -mime-db@~1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.22" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" - dependencies: - mime-db "~1.38.0" - -mime-types@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" - -mime@*: - version "2.4.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" - -mime@1.2.x, mime@~1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" - -mime@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -minimatch@0.3: - version "0.3.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" - dependencies: - lru-cache "2" - sigmund "~1.0.0" - -minimatch@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-1.0.0.tgz#e0dd2120b49e1b724ce8d714c520822a9438576d" - dependencies: - lru-cache "2" - sigmund "~1.0.0" - -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@0.1.x: - version "0.1.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minimist@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" - -minipass@^2.2.1, minipass@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - dependencies: - minipass "^2.2.1" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mock-fs@^4.4.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.7.0.tgz#9f17e219cacb8094f4010e0a8c38589e2b33c299" - -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - -module-deps-sortable@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/module-deps-sortable/-/module-deps-sortable-5.0.0.tgz#99db5bb08f7eab55e4c31f6b7c722c6a2144ba74" - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.0" - defined "^1.0.0" - detective "^4.0.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - readable-stream "^2.0.2" - resolve "^1.1.3" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.9.2: - version "2.12.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natives@^1.1.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - -node-notifier@^5.2.1: - version "5.4.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.0.0-alpha.11: - version "1.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a" - dependencies: - semver "^5.3.0" - -node-uuid@~1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" - -nopt@^4.0.1, nopt@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.0: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - -normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -now-and-later@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" - dependencies: - once "^1.3.2" - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - -npm-packlist@^1.1.6: - version "1.4.1" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-path@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" - dependencies: - which "^1.2.10" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -npm-which@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" - dependencies: - commander "^2.9.0" - npm-path "^2.0.2" - which "^1.2.10" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -"nwmatcher@>= 1.3.7 < 2.0.0": - version "1.4.4" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" - -nwsapi@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.1.tgz#08d6d75e69fd791bdea31507ffafe8c843b67e9c" - -oauth-sign@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - -object-keys@^1.0.12: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.assign@^4.0.4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: - mimic-fn "^1.0.0" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optimist@~0.3, optimist@~0.3.5: - version "0.3.7" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" - dependencies: - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - dependencies: - readable-stream "^2.0.1" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-event@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.1.0.tgz#74de477a4e6b3aa8267240c7099e78ac52cb4db4" - dependencies: - p-timeout "^2.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - dependencies: - p-limit "^2.0.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" - -parse-entities@^1.0.2, parse-entities@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.1.2.tgz#9eaf719b29dc3bd62246b4332009072e01527777" - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-filepath@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-git-config@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-0.2.0.tgz#272833fdd15fea146fb75d336d236b963b6ff706" - dependencies: - ini "^1.3.3" - -parse-github-repo-url@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-url@^1.3.0: - version "1.3.11" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-1.3.11.tgz#57c15428ab8a892b1f43869645c711d0e144b554" - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" - -parserlib@~0.2.2: - version "0.2.5" - resolved "https://registry.yarnpkg.com/parserlib/-/parserlib-0.2.5.tgz#85907dd8605aa06abb3dd295d50bb2b8fa4dd117" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5, path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - dependencies: - path-root-regex "^0.1.0" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.0.tgz#db04c982b632fd0df9090d14aaf1c8413cadb695" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -please-upgrade-node@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" - dependencies: - semver-compare "^1.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -prettier@^1.10.2: - version "1.14.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" - -pretty-format@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - -prompts@^0.1.9: - version "0.1.14" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" - dependencies: - kleur "^2.0.1" - sisteransi "^0.1.1" - -property-information@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e" - dependencies: - xtend "^4.0.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.6" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.6.tgz#f8bb263ea1b5fd7a7604d26b8be39bd77678bf8a" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -psl@^1.1.24, psl@^1.1.28: - version "1.1.31" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - -q@^1.4.1, q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qs@^6.4.0, qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -qs@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-1.0.2.tgz#50a93e2b5af6691c31bcea5dae78ee6ea1903768" - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - dependencies: - bytes "1" - string_decoder "0.10" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^1.0.0, read-pkg@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@~2.3.6: - version "2.3.6" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@~1.0.2: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.0: - version "2.1.5" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -realpath-native@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - dependencies: - util.promisify "^1.0.0" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -regenerate-unicode-properties@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" - dependencies: - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" - -regexpu-core@^4.1.3, regexpu-core@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^7.0.0" - regjsgen "^0.4.0" - regjsparser "^0.3.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.0.2" - -regjsgen@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" - -regjsparser@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" - dependencies: - jsesc "~0.5.0" - -remark-html@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-8.0.0.tgz#9fcb859a6f3cb40f3ef15402950f1a62ec301b3a" - dependencies: - hast-util-sanitize "^1.0.0" - hast-util-to-html "^4.0.0" - mdast-util-to-hast "^3.0.0" - xtend "^4.0.1" - -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remark-reference-links@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/remark-reference-links/-/remark-reference-links-4.0.2.tgz#817c63486901bd4f5f8a0cf48a695f5ecd2c966d" - dependencies: - unist-util-visit "^1.0.0" - -remark-slug@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.0.tgz#e55cd92d53395665e26b2994441394127d860abf" - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^1.0.0" - -remark-stringify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba" - dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^1.1.0" - mdast-util-compact "^1.0.0" - parse-entities "^1.0.2" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^1.0.1" - unherit "^1.0.4" - xtend "^4.0.1" - -remark-toc@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-toc/-/remark-toc-5.0.0.tgz#f1e13ed11062ad4d102b02e70168bd85015bf129" - dependencies: - mdast-util-toc "^2.0.0" - remark-slug "^5.0.0" - -remark@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" - dependencies: - remark-parse "^5.0.0" - remark-stringify "^5.0.0" - unified "^6.0.0" - -remote-origin-url@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz#4d3e2902f34e2d37d1c263d87710b77eb4086a30" - dependencies: - parse-git-config "^0.2.0" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - -repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -replace-ext@1.0.0, replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - dependencies: - lodash "^4.17.11" - -request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - dependencies: - request-promise-core "1.1.2" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.55.0, request@^2.87.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -request@~2.40.0: - version "2.40.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67" - dependencies: - forever-agent "~0.5.0" - json-stringify-safe "~5.0.0" - mime-types "~1.0.1" - node-uuid "~1.4.0" - qs "~1.0.0" - optionalDependencies: - aws-sign2 "~0.5.0" - form-data "~0.1.0" - hawk "1.1.1" - http-signature "~0.10.0" - oauth-sign "~0.3.0" - stringstream "~0.0.4" - tough-cookie ">=0.12.0" - tunnel-agent "~0.4.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - dependencies: - value-or-function "^3.0.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.1.7, resolve@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.3, resolve@^1.3.2, resolve@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - dependencies: - path-parse "^1.0.5" - -resolve@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" - dependencies: - path-parse "^1.0.6" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -right-pad@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" - -rimraf@^2.2.8: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -rimraf@^2.5.4, rimraf@^2.6.1: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - dependencies: - glob "^7.1.3" - -rsvp@^3.3.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -rxjs@^6.1.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f" - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sane@^2.0.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" - dependencies: - anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" - -sax@0.5.x: - version "0.5.8" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" - -sax@^1.1.4, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - -semver@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shelljs@0.3.x: - version "0.3.0" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - -sigmund@^1.0.1, sigmund@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -sisteransi@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sntp@0.2.x: - version "0.2.4" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" - dependencies: - hoek "0.9.x" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.6: - version "0.5.10" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@0.1.34: - version "0.1.34" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.34.tgz#a7cfe89aec7b1682c3b198d0acfb47d7d090566b" - dependencies: - amdefine ">=0.0.4" - -source-map@0.1.x, source-map@~0.1.7: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -space-separated-tokens@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz#e95ab9d19ae841e200808cd96bc7bd0adbbb3412" - dependencies: - trim "0.0.1" - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -split2@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - dependencies: - through2 "^2.0.2" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - -staged-git-files@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b" - -standard-version@^4.3.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-4.4.0.tgz#99de7a0709e6cafddf9c5984dd342c8cfe66e79f" - dependencies: - chalk "^1.1.3" - conventional-changelog "^1.1.0" - conventional-recommended-bump "^1.0.0" - dotgitignore "^1.0.3" - figures "^1.5.0" - fs-access "^1.0.0" - semver "^5.1.0" - yargs "^8.0.1" - -state-toggle@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz#c3cb0974f40a6a0f8e905b96789eb41afa1cde3a" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - -stream-array@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/stream-array/-/stream-array-1.1.2.tgz#9e5f7345f2137c30ee3b498b9114e80b52bb7eb5" - dependencies: - readable-stream "~2.1.0" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-counter@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.1.0.tgz#a035e429361fb57f361606e17fcd8a8b9677327b" - dependencies: - readable-stream "~1.0.2" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -string-argv@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@0.10, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-hexadecimal "^1.0.0" - -stringify-object@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" - dependencies: - get-own-enumerable-property-symbols "^2.0.1" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -stringstream@~0.0.4: - version "0.0.6" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@3.0.0, strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - -strip-json-comments@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - dependencies: - minimist "^1.1.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - -"symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - -table@^4.0.3: - version "4.0.3" - resolved "http://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" - dependencies: - ajv "^6.0.1" - ajv-keywords "^3.0.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -tar@^4: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -test-exclude@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" - dependencies: - arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.0, through2@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^2.0.3, through2@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@2, "through@>=2.2.7 <3", through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -tiny-lr@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tiny-worker@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/tiny-worker/-/tiny-worker-2.1.2.tgz#6feb363b87885582fdc6d91b37fe00dd612b84f2" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - dependencies: - through2 "^2.0.3" - -tough-cookie@>=0.12.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" - dependencies: - ip-regex "^2.1.0" - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@^2.2.0, tough-cookie@^2.3.3, tough-cookie@^2.3.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - dependencies: - punycode "^2.1.0" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - -trim-lines@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.1.tgz#da738ff58fa74817588455e30b11b85289f2a396" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - -trim-off-newlines@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -trim-trailing-lines@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz#e0ec0810fd3c3f1730516b45f49083caaf2774d9" - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - -trough@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" - -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tunnel-agent@~0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -typedarray@^0.0.6, typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-js@2.4.x: - version "2.4.24" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.4.24.tgz#fad5755c1e1577658bb06ff9ab6e548c95bebd6e" - dependencies: - async "~0.2.6" - source-map "0.1.34" - uglify-to-browserify "~1.0.0" - yargs "~3.5.4" - -uglify-js@^3.1.4: - version "3.4.9" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" - dependencies: - commander "~2.17.1" - source-map "~0.6.1" - -uglify-js@~2.3: - version "2.3.6" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" - dependencies: - async "~0.2.6" - optimist "~0.3.5" - source-map "~0.1.7" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - -underscore@1.6.x: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - -unherit@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz#132748da3e88eab767e08fabfbb89c5e9d28628c" - dependencies: - inherits "^2.0.1" - xtend "^4.0.1" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" - -unified@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" - -unist-builder@^1.0.1, unist-builder@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.3.tgz#ab0f9d0f10936b74f3e913521955b0478e0ff036" - dependencies: - object-assign "^4.1.0" - -unist-util-generated@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.2.tgz#8b993f9239d8e560be6ee6e91c3f7b7208e5ce25" - -unist-util-is@^2.0.0, unist-util-is@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz#1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db" - -unist-util-position@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.1.tgz#8e220c24658239bf7ddafada5725ed0ea1ebbc26" - -unist-util-remove-position@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz#86b5dad104d0bbfbeb1db5f5c92f3570575c12cb" - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - -unist-util-visit-parents@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz#63fffc8929027bee04bfef7d2cce474f71cb6217" - dependencies: - unist-util-is "^2.1.2" - -unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz#1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1" - dependencies: - unist-util-visit-parents "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-location@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.3.tgz#083ba80e50968e8d420be49dd1ea9a992131df77" - -vfile-message@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.0.1.tgz#51a2ccd8a6b97a7980bb34efb9ebde9632e93677" - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile-reporter@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-5.0.0.tgz#c2bcb87a6161cbd3b41671c2aa21b8c006f4acce" - dependencies: - repeat-string "^1.5.0" - string-width "^2.0.0" - supports-color "^5.4.0" - unist-util-stringify-position "^1.0.0" - vfile-statistics "^1.1.0" - -vfile-sort@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.1.1.tgz#03acdc8a4d7870ecf0e35499f095ddd9d14cbc41" - -vfile-statistics@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.1.tgz#a22fd4eb844c9eaddd781ad3b3246db88375e2e3" - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vfile@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.0.tgz#e0995335fdafbefe0c3d59a42868d413c0409031" - dependencies: - is-buffer "^2.0.0" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vinyl-fs@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0, vinyl@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -vue-template-compiler@^2.5.16: - version "2.5.17" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.17.tgz#52a4a078c327deb937482a509ae85c06f346c3cb" - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - dependencies: - browser-process-hrtime "^0.1.2" - -walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - dependencies: - makeerror "1.0.x" - -watch@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - -webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - -websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - -whatwg-url@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-3.1.0.tgz#7bdcae490f921aef6451fb6739ec6bbd8e907bf6" - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - dependencies: - string-width "^1.0.2 || 2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -word-wrap@^1.0.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write-file-atomic@^2.1.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - dependencies: - async-limiter "~1.0.0" - -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - -"xml-name-validator@>= 2.0.1 < 3.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - -xml2js@0.2.x: - version "0.2.8" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.8.tgz#9b81690931631ff09d1957549faf54f4f980b3c2" - dependencies: - sax "0.5.x" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - dependencies: - camelcase "^4.1.0" - -yargs@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - -yargs@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.5.4.tgz#d8aff8f665e94c34bd259bdebd1bfaf0ddd35361" - dependencies: - camelcase "^1.0.2" - decamelize "^1.0.0" - window-size "0.1.0" - wordwrap "0.0.2"