From 67243796af871e27719b071aaa5c97532803108e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Lenon?= Date: Wed, 17 Nov 2021 22:34:54 -0300 Subject: [PATCH] feat(convention): add project templates and commit conventions --- .github/COMMIT_CONVENTION.md | 67 ++ .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE.md | 21 + .github/PULL_REQUEST_TEMPLATE.md | 28 + .github/generator.png | Bin 30020 -> 13416 bytes .github/workflows/cd.yml | 2 +- .gitignore | 136 ++- CONTRIBUTING.md | 48 + README.md | 8 + package-lock.json | 1565 +++++++++++++++++++++++++++++- package.json | 27 +- 11 files changed, 1860 insertions(+), 43 deletions(-) create mode 100644 .github/COMMIT_CONVENTION.md create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CONTRIBUTING.md diff --git a/.github/COMMIT_CONVENTION.md b/.github/COMMIT_CONVENTION.md new file mode 100644 index 0000000..b715554 --- /dev/null +++ b/.github/COMMIT_CONVENTION.md @@ -0,0 +1,67 @@ +## Git Commit Message Convention + +Using conventional commit messages, we can automate the process of generating the CHANGELOG file. All commits messages will automatically be validated against the following regex. + +``` js +/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|ci|chore|types|build|improvement)((.+))?: .{1,50}/ +``` + +## Commit Message Format +A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: + +> The **scope** is optional + +``` +feat(router): add support for prefix + +Prefix makes it easier to append a path to a group of routes +``` + +1. `feat` is type. +2. `router` is scope and is optional +3. `add support for prefix` is the subject +4. The **body** is followed by a blank line. +5. The optional **footer** can be added after the body, followed by a blank line. + +## Types +Only one type can be used at a time and only following types are allowed. + +- feat +- fix +- docs +- style +- refactor +- perf +- test +- workflow +- ci +- chore +- types +- build + +If a type is `feat` or `fix`, then the commit will appear in the CHANGELOG.md file. However if there is any BREAKING CHANGE, the commit will always appear in the changelog. + +### Revert +If the commit reverts a previous commit, it should begin with `revert:`, followed by the header of the reverted commit. In the body it should say: `This reverts commit `., where the hash is the SHA of the commit being reverted. + +## Scope +The scope could be anything specifying place of the commit change. For example: `router`, `view`, `querybuilder`, `database`, `model` and so on. + +## Subject +The subject contains succinct description of the change: + +- use the imperative, present tense: "change" not "changed" nor "changes". +- don't capitalize first letter +- no dot (.) at the end + +## Body + +Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". +The body should include the motivation for the change and contrast this with previous behavior. + +## Footer + +The footer should contain any information about **Breaking Changes** and is also the place to +reference GitHub issues that this commit **Closes**. + +**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this. diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..8d082d3 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +open_collective: secjs diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..71e9f98 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,21 @@ + + +## Prerequisites + +- Ensure the issue isn't already reported. +- Ensure you are reporting the bug in the correct repository. + +*Delete the above section and the instructions in the sections below before submitting* + +## Description + +If this is a feature request, explain why it should be added. Specific use-cases and problems that it solve are best. + +For bug reports, please provide as much *relevant* info as possible. + +## Package version + + +## Error Message & Stack Trace + +## Relevant Information diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..cdd4de3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,28 @@ + + +## Proposed changes + +Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue. + +## Types of changes + +What types of changes does your code introduce? + +_Put an `x` in the boxes that apply_ + +- [ ] Bugfix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) + +## Checklist + +_Put an `x` in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code._ + +- [ ] I have read the [CONTRIBUTING](https://github.com/SecJS/Generator/blob/master/CONTRIBUTING.md) documentation +- [ ] Lint and unit tests pass locally with my changes +- [ ] I have added tests that prove my fix is effective or that my feature works. +- [ ] I have added necessary documentation (if appropriate) + +## Further comments + +If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc... diff --git a/.github/generator.png b/.github/generator.png index 84243456c30bded76b7abfc7e03e65abfefd87ac..d4b3baab2420fc4e071b1a8e66c2a52d8ddbc3c5 100644 GIT binary patch literal 13416 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 literal 30020 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 b&TfKPjmLC&WJ|z>CE%&N8nRH<_{0AJR^QQ) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 5c0375b..64bd1b0 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -29,7 +29,7 @@ jobs: id: release - name: Publish to NPM Registry - run: yarn publish --access public + run: npm publish --access public if: steps.release.outputs.released == 'true' env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index f815977..76587c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -# compiled output -node_modules +node_modules/ # Logs logs @@ -8,29 +7,122 @@ npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* +.pnpm-debug.log* -# OS -.DS_Store +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json -# Tests -/coverage -/.nyc_output +# Runtime data +pids +*.pid +*.seed +*.pid.lock -# IDEs and editors -/.idea -.project -.classpath -.c9/ -.env.testing -*.launch -.settings/ -*.sublime-workspace +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json +# Yarn Integrity file +.yarn-integrity +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IDE +.idea +.vscode + +# dotenv environment variables file .env +.env.testing +.env.production + +# Build files +# *.js +# *.d.ts +# dist +# build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5cdff90 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,48 @@ +# Contributing + +SecJS is a community driven project. You are free to contribute in any of the following ways. + +- [Coding style](coding-style) +- [Fix bugs by creating PR's](fix-bugs-by-creating-prs) +- [Share an RFC for new features or big changes](share-an-rfc-for-new-features-or-big-changes) +- [Report security issues](report-security-issues) +- [Be a part of the community](be-a-part-of-community) + +## Coding style + +Majority of SecJS core packages are written in Typescript. Having a brief knowledge of Typescript is required to contribute to the core. + +## Fix bugs by creating PR's + +We appreciate every time you report a bug in the packages. However, taking time to submit a PR can help us in fixing bugs quickly and ensure a healthy and stable eco-system. + +Go through the following points, before creating a new PR. + +1. Create an issue discussing the bug or short-coming in the package. +2. Once approved, go ahead and fork the repository. +3. Make sure to start from the `develop`, since this is the upto date branch. +4. Make sure to keep commits small and relevant. +5. We follow [conventional-commits](https://github.com/conventional-changelog/conventional-changelog) to structure our commit messages. Instead of running `git commit -m "message"`, you must run only `git commit`, which will show you prompts to create a valid commit message. +6. Once done with all the changes, create a PR against the `develop` branch. + +## Share an RFC for new features or big changes + +Sharing PR's for small changes works great. However, when contributing big features to the package, it is required to go through the RFC process. + +### What is an RFC? + +RFC stands for **Request for Commits**, a standard process followed by many other frameworks including [Ember](https://github.com/emberjs/rfcs), [yarn](https://github.com/yarnpkg/rfcs) and [rust](https://github.com/rust-lang/rfcs). + +In brief, RFC process allows you to talk about the changes with everyone in the community and get a view of the core team before dedicating your time to work on the feature. + +The RFC proposals are created as issues on [SecJS/Rfcs](https://github.com/SecJS/Rfcs) repository. Make sure to read the README to learn about the process in depth. + +## Report security issues + +All the security issues, must be reported via [email](mailto:lenon@secjs.com.br) and not using any of the public channels. + +## Be a part of community + +We welcome you to participate in the [forum](https://forum.secjs.com.br/) and the SecJS [discord server](https://discord.me/secjs). You are free to ask your questions and share your work or contributions made to SecJS eco-system. + +We follow a strict [Code of Conduct](https://secjs.com.br/community-guidelines) to make sure everyone is respectful to each other. diff --git a/README.md b/README.md index 585e49f..ad7a7a5 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,18 @@ [![GitHub followers](https://img.shields.io/github/followers/jlenon7.svg?style=social&label=Follow&maxAge=2592000)](https://github.com/jlenon7?tab=followers) [![GitHub stars](https://img.shields.io/github/stars/secjs/generator.svg?style=social&label=Star&maxAge=2592000)](https://github.com/secjs/generator/stargazers/) +

+ Buy Me A Coffee +

+

GitHub language count Repository size License + + Commitizen

The intention behind this repository is to always maintain a code `Generator` to any NodeJS project or framework. @@ -42,4 +48,6 @@ yo secjs Foo --path=./Bar --- +## License + Made with 🖤 by [jlenon7](https://github.com/jlenon7) :wave diff --git a/package-lock.json b/package-lock.json index 6609274..bccee7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "generator-secjs", - "version": "1.3.0", + "version": "1.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "generator-secjs", - "version": "1.3.0", + "version": "1.3.1", "license": "MIT", "dependencies": { "camelcase": "6.2.0", @@ -18,6 +18,8 @@ "yosay": "2.0.2" }, "devDependencies": { + "commitizen": "4.2.4", + "cz-conventional-changelog": "3.3.0", "eslint": "7.32.0", "eslint-config-prettier": "8.3.0", "eslint-config-standard": "16.0.3", @@ -671,6 +673,148 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@commitlint/execute-rule": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz", + "integrity": "sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=v12" + } + }, + "node_modules/@commitlint/load": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz", + "integrity": "sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==", + "dev": true, + "optional": true, + "dependencies": { + "@commitlint/execute-rule": "^15.0.0", + "@commitlint/resolve-extends": "^15.0.0", + "@commitlint/types": "^15.0.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/@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/@commitlint/load/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/@commitlint/load/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==", + "dev": true, + "optional": true, + "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/@commitlint/load/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, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/load/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, + "optional": true + }, + "node_modules/@commitlint/resolve-extends": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz", + "integrity": "sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==", + "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/resolve-extends/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, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/types": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz", + "integrity": "sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=v12" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -1778,6 +1922,13 @@ "readable-stream": "^2.0.6" } }, + "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": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -2219,6 +2370,15 @@ "node": ">= 10" } }, + "node_modules/cachedir": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", + "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -2564,6 +2724,320 @@ "node": ">= 10" } }, + "node_modules/commitizen": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", + "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", + "dev": true, + "dependencies": { + "cachedir": "2.2.0", + "cz-conventional-changelog": "3.2.0", + "dedent": "0.7.0", + "detect-indent": "6.0.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "8.1.0", + "glob": "7.1.4", + "inquirer": "6.5.2", + "is-utf8": "^0.2.1", + "lodash": "^4.17.20", + "minimist": "1.2.5", + "strip-bom": "4.0.0", + "strip-json-comments": "3.0.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/commitizen/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/commitizen/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/commitizen/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/commitizen/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/commitizen/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/commitizen/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/commitizen/node_modules/cz-conventional-changelog": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", + "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", + "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/commitizen/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/commitizen/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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": "*" + } + }, + "node_modules/commitizen/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/commitizen/node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/commitizen/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/commitizen/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commitizen/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/commitizen/node_modules/strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commitizen/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/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -2587,6 +3061,12 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "devOptional": true }, + "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/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -2639,6 +3119,13 @@ "node": ">=4" } }, + "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.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2676,6 +3163,97 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, + "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/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/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/cz-conventional-changelog/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/cz-conventional-changelog/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/cz-conventional-changelog/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/cz-conventional-changelog/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/cz-conventional-changelog/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/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -2850,6 +3428,24 @@ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, + "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.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "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", @@ -3751,6 +4347,18 @@ "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": "27.2.0", "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.0.tgz", @@ -3924,6 +4532,22 @@ "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": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -4028,6 +4652,21 @@ "node": ">=8" } }, + "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/first-chunk-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", @@ -4082,6 +4721,20 @@ "node": ">= 6" } }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -4325,6 +4978,61 @@ "node": ">= 6" } }, + "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-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/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/globals": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", @@ -4487,6 +5195,18 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "devOptional": true }, + "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": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -4958,6 +5678,12 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "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/inquirer": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.5.tgz", @@ -5353,6 +6079,15 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "devOptional": 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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -6435,6 +7170,15 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -6767,6 +7511,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "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", @@ -6844,6 +7594,15 @@ "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/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6879,6 +7638,13 @@ "semver": "bin/semver.js" } }, + "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/make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", @@ -6965,6 +7731,12 @@ "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "devOptional": true }, + "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", @@ -7801,6 +8573,15 @@ "node": ">=4" } }, + "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/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -8509,6 +9290,19 @@ "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": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -8518,6 +9312,19 @@ "node": ">=4" } }, + "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/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -9378,6 +10185,43 @@ "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", "devOptional": true }, + "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/tsconfig-paths": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", @@ -9477,6 +10321,20 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "dev": true, + "optional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -10394,6 +11252,16 @@ "yeoman-generator": "*" } }, + "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", @@ -11072,6 +11940,119 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@commitlint/execute-rule": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz", + "integrity": "sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz", + "integrity": "sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/execute-rule": "^15.0.0", + "@commitlint/resolve-extends": "^15.0.0", + "@commitlint/types": "^15.0.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": { + "@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" + } + }, + "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" + } + }, + "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==", + "dev": true, + "optional": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "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, + "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, + "optional": true + } + } + }, + "@commitlint/resolve-extends": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz", + "integrity": "sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "dependencies": { + "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, + "optional": true + } + } + }, + "@commitlint/types": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz", + "integrity": "sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.0.0" + } + }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -12006,6 +12987,13 @@ "readable-stream": "^2.0.6" } }, + "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": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -12342,6 +13330,12 @@ "unique-filename": "^1.1.1" } }, + "cachedir": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", + "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", + "dev": true + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -12591,12 +13585,257 @@ "delayed-stream": "~1.0.0" } }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "commitizen": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", + "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", + "dev": true, + "requires": { + "cachedir": "2.2.0", + "cz-conventional-changelog": "3.2.0", + "dedent": "0.7.0", + "detect-indent": "6.0.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "8.1.0", + "glob": "7.1.4", + "inquirer": "6.5.2", + "is-utf8": "^0.2.1", + "lodash": "^4.17.20", + "minimist": "1.2.5", + "strip-bom": "4.0.0", + "strip-json-comments": "3.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "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 + }, + "cz-conventional-changelog": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", + "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", + "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" + } + }, + "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 + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, + "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" + } + } + } + }, "common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -12620,6 +13859,12 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "devOptional": true }, + "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 + }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -12665,6 +13910,13 @@ } } }, + "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.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -12698,6 +13950,79 @@ } } }, + "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": { + "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" + } + }, + "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" + } + }, + "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 + }, + "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 + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "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" + } + } + } + }, "dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -12827,6 +14152,18 @@ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, + "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.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -13495,6 +14832,15 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "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": "27.2.0", "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.0.tgz", @@ -13639,6 +14985,22 @@ "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": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -13718,6 +15080,18 @@ } } }, + "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" + } + }, "first-chunk-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", @@ -13760,6 +15134,17 @@ "mime-types": "^2.1.12" } }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -13944,6 +15329,51 @@ "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" + } + }, + "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": { + "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" + } + } + } + }, "globals": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", @@ -14058,6 +15488,15 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "devOptional": true }, + "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": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -14408,6 +15847,12 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, "inquirer": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.5.tgz", @@ -14693,6 +16138,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "devOptional": 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==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -15532,6 +16983,15 @@ "minimist": "^1.2.5" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -15786,6 +17246,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "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", @@ -15844,6 +17310,12 @@ } } }, + "longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -15869,6 +17341,13 @@ } } }, + "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 + }, "make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", @@ -15940,6 +17419,12 @@ "textextensions": "^5.13.0" } }, + "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", @@ -16584,6 +18069,12 @@ "json-parse-better-errors": "^1.0.1" } }, + "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 + }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -17117,12 +18608,32 @@ } } }, + "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": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "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" + } + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -17777,6 +19288,30 @@ "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", "devOptional": true }, + "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 + } + } + }, "tsconfig-paths": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", @@ -17857,6 +19392,13 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "dev": true, + "optional": true + }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -18546,6 +20088,13 @@ "temp-dir": "^2.0.0" } }, + "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", diff --git a/package.json b/package.json index 4f2c79c..2455184 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "generator-secjs", - "version": "1.3.0", + "version": "1.3.1", "description": "🧬 Generator for any NodeJS Project or Framework", "main": "app/index.js", "scripts": { @@ -8,21 +8,18 @@ "test:debug": "DEBUG=* jest --verbose", "lint:fix": "eslint \"{app,utils,tests}/**/*.js\" --fix" }, - "repository": { - "type": "git", - "url": "git+https://github.com/SecJS/Generator.git" - }, - "author": "João Lenon", "license": "MIT", - "bugs": { - "url": "https://github.com/SecJS/Generator/issues" - }, + "author": "João Lenon", + "repository": "https://github.com/SecJS/Env.git", + "bugs": "https://github.com/SecJS/Env/issues", + "homepage": "https://github.com/SecJS/Env#readme", "keywords": [ "secjs", "yeoman-generator" ], - "homepage": "https://github.com/SecJS/Generator#readme", "devDependencies": { + "commitizen": "4.2.4", + "cz-conventional-changelog": "3.3.0", "eslint": "7.32.0", "eslint-config-prettier": "8.3.0", "eslint-config-standard": "16.0.3", @@ -60,7 +57,8 @@ }, "husky": { "hooks": { - "pre-commit": "lint-staged" + "pre-commit": "lint-staged", + "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true" } }, "jest": { @@ -113,5 +111,10 @@ "files": [ "app", "utils" - ] + ], + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + } }