diff --git a/README.md b/README.md
index d7130ee..0dc5202 100644
--- a/README.md
+++ b/README.md
@@ -61,10 +61,6 @@ Specify the action as part of your GitHub actions workflow:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
-By default the action will try to automatically retrieve the `tag` from the current commit and automatically resolve the `tag` before. Automatic previous tag resolving is done using `semver`.
-
-If you require a different versioning scheme please open an issue [issue](https://github.com/mikepenz/release-changelog-builder-action/issues). Alternative you can always specifically supply the `fromTag` via the [configuration](#advanced-workflow-specification).
-
### Action outputs
After action execution it will return the `changelog` and additional information as step output. You can use it in any follow-up step by referencing the output by referencing it via the id of the step. For example `build_changelog`.
@@ -135,40 +131,45 @@ The action supports flexible configuration options to modify vast areas of its b
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
+๐ก By default not specifying `fromTag` or `toTag` will resolve `toTag` from either the `ref` or alternatively fallback to the latest tag from git. `fromTag` is resolved by sorting tags using [semver](https://semver.org/). Check the [configuration](#configuration-specification) for alternatives.
+
This configuration is a `.json` file in the following format.
```json
{
"categories": [
- {
- "title": "## ๐ Features",
- "labels": ["feature"]
- },
- {
- "title": "## ๐ Fixes",
- "labels": ["fix"]
- },
- {
- "title": "## ๐งช Tests",
- "labels": ["test"]
- }
+ {
+ "title": "## ๐ Features",
+ "labels": ["feature"]
+ },
+ {
+ "title": "## ๐ Fixes",
+ "labels": ["fix"]
+ },
+ {
+ "title": "## ๐งช Tests",
+ "labels": ["test"]
+ }
],
"sort": "ASC",
"template": "${{CHANGELOG}}\n\n\nUncategorized
\n\n${{UNCATEGORIZED}}\n ",
"pr_template": "- ${{TITLE}}\n - PR: #${{NUMBER}}",
"empty_template": "- no changes",
"transformers": [
- {
- "pattern": "[\\-\\*] (\\[(...|TEST|CI|SKIP)\\])( )?(.+?)\n(.+?[\\-\\*] )(.+)",
- "target": "- $4\n - $6"
- }
+ {
+ "pattern": "[\\-\\*] (\\[(...|TEST|CI|SKIP)\\])( )?(.+?)\n(.+?[\\-\\*] )(.+)",
+ "target": "- $4\n - $6"
+ }
],
"max_tags_to_fetch": 200,
"max_pull_requests": 200,
"max_back_track_time_days": 90,
"exclude_merge_branches": [
- "Owner/qa"
- ]
+ "Owner/qa"
+ ],
+ "tag_resolver": {
+ "method": "semver"
+ }
}
```
@@ -266,6 +267,8 @@ Table of descriptions for the `configuration.json` options.
| max_pull_requests | The maximum amount of pull requests to load from the API. Loaded paginated with 30 per page |
| max_back_track_time_days | Defines the max amount of days to go back in time per changelog |
| exclude_merge_branches | An array of branches to be ignored from processing as merge commits |
+| tag_resolver | Section to provide configuration for the tag resolving logic. Used if no `fromTag` is provided |
+| tag_resolver.method | Defines the method to use. Current options are: `semver`, `sort`. Default: `semver` |
## Contribute ๐งฌ
diff --git a/__tests__/tags.test.ts b/__tests__/tags.test.ts
index d82b09c..edaeab1 100644
--- a/__tests__/tags.test.ts
+++ b/__tests__/tags.test.ts
@@ -2,7 +2,7 @@ import { resolveConfiguration } from '../src/utils';
import { ReleaseNotesBuilder } from '../src/releaseNotesBuilder';
import { TagInfo, sortTags } from '../src/tags';
-it('Should order tags correctly', async () => {
+it('Should order tags correctly using semver', async () => {
jest.setTimeout(180000)
const tags: TagInfo[] = [
@@ -16,7 +16,10 @@ it('Should order tags correctly', async () => {
{ name: "v2020.3.0", commit: "" }
]
- const sorted = sortTags(tags).map(function (tag) {
+ const tagResolver = {
+ method: "semver"
+ }
+ const sorted = sortTags(tags, tagResolver).map(function (tag) {
return tag.name
}).join(",")
@@ -24,7 +27,7 @@ it('Should order tags correctly', async () => {
})
-it('Should order tags correctly', async () => {
+it('Should order tags correctly using semver', async () => {
jest.setTimeout(180000)
const tags: TagInfo[] = [
@@ -43,9 +46,42 @@ it('Should order tags correctly', async () => {
{ name: "1000.0.0", commit: "" },
]
- const sorted = sortTags(tags).map(function (tag) {
+ const tagResolver = {
+ method: "non-existing-method"
+ }
+ const sorted = sortTags(tags, tagResolver).map(function (tag) {
return tag.name
}).join(",")
expect(sorted).toStrictEqual(`1000.0.0,100.0.0,20.0.2,10.1.0,10.1.0-2,10.0.0,2.0.0,1.0.0,1.0.0-a01,0.1.0,0.1.0-b01,0.0.1,0.0.1-rc01`)
+})
+
+
+it('Should order tags alphabetical', async () => {
+ jest.setTimeout(180000)
+
+ const tags: TagInfo[] = [
+ { name: "0.0.1", commit: "" },
+ { name: "0.0.1-rc01", commit: "" },
+ { name: "0.1.0-b01", commit: "" },
+ { name: "1.0.0", commit: "" },
+ { name: "a", commit: "" },
+ { name: "1.0.0-a01", commit: "" },
+ { name: "2.0.0", commit: "" },
+ { name: "10.0.0", commit: "" },
+ { name: "v1", commit: "" },
+ { name: "10.1.0", commit: "" },
+ { name: "10.1.0-2", commit: "" },
+ { name: "20.0.2", commit: "" },
+ { name: "1000.0.0", commit: "" },
+ ]
+
+ const tagResolver = {
+ method: "sort"
+ }
+ const sorted = sortTags(tags, tagResolver).map(function (tag) {
+ return tag.name
+ }).join(",")
+
+ expect(sorted).toStrictEqual(`a,20.0.2,2.0.0,1000.0.0,10.1.0,10.1.0-2,10.0.0,1.0.0,1.0.0-a01,v1,0.1.0-b01,0.0.1,0.0.1-rc01`)
})
\ No newline at end of file
diff --git a/action.yml b/action.yml
index 51c324e..61665f0 100644
--- a/action.yml
+++ b/action.yml
@@ -1,5 +1,5 @@
name: 'Release Changelog Builder'
-description: 'A GitHub action that builds your release notes fast, easy and exactly the way you want.'
+description: 'A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.'
author: 'Mike Penz'
branding:
icon: 'award'
diff --git a/package-lock.json b/package-lock.json
index d646f7d..110b532 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "release-changelog-builder-action",
- "version": "1.0.0",
+ "version": "v1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -234,9 +234,9 @@
}
},
"@babel/parser": {
- "version": "7.12.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz",
- "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==",
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz",
+ "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==",
"dev": true
},
"@babel/template": {
@@ -381,9 +381,9 @@
}
},
"@babel/parser": {
- "version": "7.12.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz",
- "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==",
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz",
+ "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==",
"dev": true
},
"@babel/template": {
@@ -933,46 +933,46 @@
}
},
"@jest/globals": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.5.3.tgz",
- "integrity": "sha512-7QztI0JC2CuB+Wx1VdnOUNeIGm8+PIaqngYsZXQCkH2QV0GFqzAYc9BZfU0nuqA6cbYrWh5wkuMzyii3P7deug==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.0.tgz",
+ "integrity": "sha512-rs3a/a8Lq8FgTx11SxbqIU2bDjsFU2PApl2oK2oUVlo84RSF76afFm2nLojW93AGssr715GHUwhq5b6mpCI5BQ==",
"dev": true,
"requires": {
- "@jest/environment": "^26.5.2",
- "@jest/types": "^26.5.2",
- "expect": "^26.5.3"
+ "@jest/environment": "^26.6.0",
+ "@jest/types": "^26.6.0",
+ "expect": "^26.6.0"
},
"dependencies": {
"@jest/environment": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.5.2.tgz",
- "integrity": "sha512-YjhCD/Zhkz0/1vdlS/QN6QmuUdDkpgBdK4SdiVg4Y19e29g4VQYN5Xg8+YuHjdoWGY7wJHMxc79uDTeTOy9Ngw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.0.tgz",
+ "integrity": "sha512-l+5MSdiC4rUUrz8xPdj0TwHBwuoqMcAbFnsYDTn5FkenJl8b+lvC5NdJl1tVICGHWnx0fnjdd1luRZ7u3U4xyg==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/fake-timers": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
- "jest-mock": "^26.5.2"
+ "jest-mock": "^26.6.0"
}
},
"@jest/fake-timers": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.5.2.tgz",
- "integrity": "sha512-09Hn5Oraqt36V1akxQeWMVL0fR9c6PnEhpgLaYvREXZJAh2H2Y+QLCsl0g7uMoJeoWJAuz4tozk1prbR1Fc1sw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.0.tgz",
+ "integrity": "sha512-7VQpjChrwlwvGNysS10lDBLOVLxMvMtpx0Xo6aIotzNVyojYk0NN0CR8R4T6h/eu7Zva/LB3P71jqwGdtADoag==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@sinonjs/fake-timers": "^6.0.1",
"@types/node": "*",
- "jest-message-util": "^26.5.2",
- "jest-mock": "^26.5.2",
- "jest-util": "^26.5.2"
+ "jest-message-util": "^26.6.0",
+ "jest-mock": "^26.6.0",
+ "jest-util": "^26.6.0"
}
},
"@jest/types": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz",
- "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.0.tgz",
+ "integrity": "sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -998,9 +998,9 @@
"dev": true
},
"@types/yargs": {
- "version": "15.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.8.tgz",
- "integrity": "sha512-b0BYzFUzBpOhPjpl1wtAHU994jBeKF4TKVlT7ssFv44T617XNcPdRoG4AzHLVshLzlrF7i3lTelH7UbuNYV58Q==",
+ "version": "15.0.9",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz",
+ "integrity": "sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
@@ -1068,16 +1068,16 @@
"dev": true
},
"expect": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-26.5.3.tgz",
- "integrity": "sha512-kkpOhGRWGOr+TEFUnYAjfGvv35bfP+OlPtqPIJpOCR9DVtv8QV+p8zG0Edqafh80fsjeE+7RBcVUq1xApnYglw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.0.tgz",
+ "integrity": "sha512-EzhbZ1tbwcaa5Ok39BI11flIMeIUSlg1QsnXOrleaMvltwHsvIQPBtL710l+ma+qDFLUgktCXK4YuQzmHdm7cg==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"ansi-styles": "^4.0.0",
"jest-get-type": "^26.3.0",
- "jest-matcher-utils": "^26.5.2",
- "jest-message-util": "^26.5.2",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
"jest-regex-util": "^26.0.0"
}
},
@@ -1109,15 +1109,15 @@
"dev": true
},
"jest-diff": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.5.2.tgz",
- "integrity": "sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.0.tgz",
+ "integrity": "sha512-IH09rKsdWY8YEY7ii2BHlSq59oXyF2pK3GoK+hOK9eD/x6009eNB5Jv1shLMKgxekodPzLlV7eZP1jPFQYds8w==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"diff-sequences": "^26.5.0",
"jest-get-type": "^26.3.0",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-get-type": {
@@ -1127,25 +1127,25 @@
"dev": true
},
"jest-matcher-utils": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz",
- "integrity": "sha512-W9GO9KBIC4gIArsNqDUKsLnhivaqf8MSs6ujO/JDcPIQrmY+aasewweXVET8KdrJ6ADQaUne5UzysvF/RR7JYA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.0.tgz",
+ "integrity": "sha512-BUy/dQYb7ELGRazmK4ZVkbfPYCaNnrMtw1YljVhcKzWUxBM0xQ+bffrfnMLdRZp4wUUcT4ahaVnA3VWZtXWP9Q==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
- "jest-diff": "^26.5.2",
+ "jest-diff": "^26.6.0",
"jest-get-type": "^26.3.0",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-message-util": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.5.2.tgz",
- "integrity": "sha512-Ocp9UYZ5Jl15C5PNsoDiGEk14A4NG0zZKknpWdZGoMzJuGAkVt10e97tnEVMYpk7LnQHZOfuK2j/izLBMcuCZw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.0.tgz",
+ "integrity": "sha512-WPAeS38Kza29f04I0iOIQrXeiebRXjmn6cFehzI7KKJOgT0NmqYAcLgjWnIAfKs5FBmEQgje1kXab0DaLKCl2w==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
@@ -1155,12 +1155,12 @@
}
},
"jest-mock": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.5.2.tgz",
- "integrity": "sha512-9SiU4b5PtO51v0MtJwVRqeGEroH66Bnwtq4ARdNP7jNXbpT7+ByeWNAk4NeT/uHfNSVDXEXgQo1XRuwEqS6Rdw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.0.tgz",
+ "integrity": "sha512-HsNmL8vVIn1rL1GWA21Drpy9Cl+7GImwbWz/0fkWHrUXVzuaG7rP0vwLtE+/n70Mt0U8nPkz8fxioi3SC0wqhw==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/node": "*"
}
},
@@ -1171,12 +1171,12 @@
"dev": true
},
"jest-util": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.5.2.tgz",
- "integrity": "sha512-WTL675bK+GSSAYgS8z9FWdCT2nccO1yTIplNLPlP0OD8tUk/H5IrWKMMRudIQQ0qp8bb4k+1Qa8CxGKq9qnYdg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.0.tgz",
+ "integrity": "sha512-/cUGqcnKeZMjvTQLfJo65nBOEZ/k0RB/8usv2JpfYya05u0XvBmKkIH5o5c4nCh9DD61B1YQjMGGqh1Ha0aXdg==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
@@ -1195,12 +1195,12 @@
}
},
"pretty-format": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz",
- "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.0.tgz",
+ "integrity": "sha512-Uumr9URVB7bm6SbaByXtx+zGlS+0loDkFMHP0kHahMjmfCtmFY03iqd++5v3Ld6iB5TocVXlBN/T+DXMn9d4BA==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"ansi-regex": "^5.0.0",
"ansi-styles": "^4.0.0",
"react-is": "^16.12.0"
@@ -1751,9 +1751,9 @@
"dev": true
},
"@types/prettier": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.2.tgz",
- "integrity": "sha512-IiPhNnenzkqdSdQH3ifk9LoX7oQe61ZlDdDO4+MUv6FyWdPGDPr26gCPVs3oguZEMq//nFZZpwUZcVuNJsG+DQ==",
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz",
+ "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==",
"dev": true
},
"@types/semver": {
@@ -1849,15 +1849,27 @@
}
},
"@typescript-eslint/parser": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.4.1.tgz",
- "integrity": "sha512-S0fuX5lDku28Au9REYUsV+hdJpW/rNW0gWlc4SXzF/kdrRaAVX9YCxKpziH7djeWT/HFAjLZcnY7NJD8xTeUEg==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.5.0.tgz",
+ "integrity": "sha512-xb+gmyhQcnDWe+5+xxaQk5iCw6KqXd8VQxGiTeELTMoYeRjpocZYYRP1gFVM2C8Yl0SpUvLa1lhprwqZ00w3Iw==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "4.4.1",
- "@typescript-eslint/types": "4.4.1",
- "@typescript-eslint/typescript-estree": "4.4.1",
+ "@typescript-eslint/scope-manager": "4.5.0",
+ "@typescript-eslint/types": "4.5.0",
+ "@typescript-eslint/typescript-estree": "4.5.0",
"debug": "^4.1.1"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.5.0.tgz",
+ "integrity": "sha512-C0cEO0cTMPJ/w4RA/KVe4LFFkkSh9VHoFzKmyaaDWAnPYIEzVCtJ+Un8GZoJhcvq+mPFXEsXa01lcZDHDG6Www==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.5.0",
+ "@typescript-eslint/visitor-keys": "4.5.0"
+ }
+ }
}
},
"@typescript-eslint/scope-manager": {
@@ -1895,42 +1907,34 @@
}
},
"@typescript-eslint/types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.4.1.tgz",
- "integrity": "sha512-KNDfH2bCyax5db+KKIZT4rfA8rEk5N0EJ8P0T5AJjo5xrV26UAzaiqoJCxeaibqc0c/IvZxp7v2g3difn2Pn3w==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.5.0.tgz",
+ "integrity": "sha512-n2uQoXnyWNk0Les9MtF0gCK3JiWd987JQi97dMSxBOzVoLZXCNtxFckVqt1h8xuI1ix01t+iMY4h4rFMj/303g==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.4.1.tgz",
- "integrity": "sha512-wP/V7ScKzgSdtcY1a0pZYBoCxrCstLrgRQ2O9MmCUZDtmgxCO/TCqOTGRVwpP4/2hVfqMz/Vw1ZYrG8cVxvN3g==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.5.0.tgz",
+ "integrity": "sha512-gN1mffq3zwRAjlYWzb5DanarOPdajQwx5MEWkWCk0XvqC8JpafDTeioDoow2L4CA/RkYZu7xEsGZRhqrTsAG8w==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.4.1",
- "@typescript-eslint/visitor-keys": "4.4.1",
+ "@typescript-eslint/types": "4.5.0",
+ "@typescript-eslint/visitor-keys": "4.5.0",
"debug": "^4.1.1",
"globby": "^11.0.1",
"is-glob": "^4.0.1",
"lodash": "^4.17.15",
"semver": "^7.3.2",
"tsutils": "^3.17.1"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
- "dev": true
- }
}
},
"@typescript-eslint/visitor-keys": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.4.1.tgz",
- "integrity": "sha512-H2JMWhLaJNeaylSnMSQFEhT/S/FsJbebQALmoJxMPMxLtlVAMy2uJP/Z543n9IizhjRayLSqoInehCeNW9rWcw==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.5.0.tgz",
+ "integrity": "sha512-UHq4FSa55NDZqscRU//O5ROFhHa9Hqn9KWTEvJGTArtTQp5GKv9Zqf6d/Q3YXXcFv4woyBml7fJQlQ+OuqRcHA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.4.1",
+ "@typescript-eslint/types": "4.5.0",
"eslint-visitor-keys": "^2.0.0"
},
"dependencies": {
@@ -2949,9 +2953,9 @@
}
},
"emittery": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz",
- "integrity": "sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz",
+ "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==",
"dev": true
},
"emoji-regex": {
@@ -4969,6 +4973,15 @@
"ci-info": "^2.0.0"
}
},
+ "is-core-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz",
+ "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
"is-data-descriptor": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
@@ -5280,30 +5293,30 @@
}
},
"jest-circus": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-26.5.3.tgz",
- "integrity": "sha512-d3kCp2ASCG9aq63KZi1VyNDcWCiBwlUfEQfGuKd9aPs45L5J69SsjQjhjAqhVjX0eld8cZMJZS1VC4OuXoQ+8A==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-26.6.0.tgz",
+ "integrity": "sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^26.5.2",
- "@jest/test-result": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/environment": "^26.6.0",
+ "@jest/test-result": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/babel__traverse": "^7.0.4",
"@types/node": "*",
"chalk": "^4.0.0",
"co": "^4.6.0",
"dedent": "^0.7.0",
- "expect": "^26.5.3",
+ "expect": "^26.6.0",
"is-generator-fn": "^2.0.0",
- "jest-each": "^26.5.2",
- "jest-matcher-utils": "^26.5.2",
- "jest-message-util": "^26.5.2",
- "jest-runner": "^26.5.3",
- "jest-runtime": "^26.5.3",
- "jest-snapshot": "^26.5.3",
- "jest-util": "^26.5.2",
- "pretty-format": "^26.5.2",
+ "jest-each": "^26.6.0",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-runner": "^26.6.0",
+ "jest-runtime": "^26.6.0",
+ "jest-snapshot": "^26.6.0",
+ "jest-util": "^26.6.0",
+ "pretty-format": "^26.6.0",
"stack-utils": "^2.0.2",
"throat": "^5.0.0"
},
@@ -5465,9 +5478,9 @@
}
},
"@babel/parser": {
- "version": "7.12.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz",
- "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==",
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz",
+ "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==",
"dev": true
},
"@babel/template": {
@@ -5504,43 +5517,43 @@
}
},
"@jest/console": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.5.2.tgz",
- "integrity": "sha512-lJELzKINpF1v74DXHbCRIkQ/+nUV1M+ntj+X1J8LxCgpmJZjfLmhFejiMSbjjD66fayxl5Z06tbs3HMyuik6rw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.0.tgz",
+ "integrity": "sha512-ArGcZWAEYMWmWnc/QvxLDvFmGRPvmHeulhS7FUUAlUGR5vS/SqMfArsGaYmIFEThSotCMnEihwx1h62I1eg5lg==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
"chalk": "^4.0.0",
- "jest-message-util": "^26.5.2",
- "jest-util": "^26.5.2",
+ "jest-message-util": "^26.6.0",
+ "jest-util": "^26.6.0",
"slash": "^3.0.0"
}
},
"@jest/environment": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.5.2.tgz",
- "integrity": "sha512-YjhCD/Zhkz0/1vdlS/QN6QmuUdDkpgBdK4SdiVg4Y19e29g4VQYN5Xg8+YuHjdoWGY7wJHMxc79uDTeTOy9Ngw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.0.tgz",
+ "integrity": "sha512-l+5MSdiC4rUUrz8xPdj0TwHBwuoqMcAbFnsYDTn5FkenJl8b+lvC5NdJl1tVICGHWnx0fnjdd1luRZ7u3U4xyg==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/fake-timers": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
- "jest-mock": "^26.5.2"
+ "jest-mock": "^26.6.0"
}
},
"@jest/fake-timers": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.5.2.tgz",
- "integrity": "sha512-09Hn5Oraqt36V1akxQeWMVL0fR9c6PnEhpgLaYvREXZJAh2H2Y+QLCsl0g7uMoJeoWJAuz4tozk1prbR1Fc1sw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.0.tgz",
+ "integrity": "sha512-7VQpjChrwlwvGNysS10lDBLOVLxMvMtpx0Xo6aIotzNVyojYk0NN0CR8R4T6h/eu7Zva/LB3P71jqwGdtADoag==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@sinonjs/fake-timers": "^6.0.1",
"@types/node": "*",
- "jest-message-util": "^26.5.2",
- "jest-mock": "^26.5.2",
- "jest-util": "^26.5.2"
+ "jest-message-util": "^26.6.0",
+ "jest-mock": "^26.6.0",
+ "jest-util": "^26.6.0"
}
},
"@jest/source-map": {
@@ -5555,46 +5568,46 @@
}
},
"@jest/test-result": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.5.2.tgz",
- "integrity": "sha512-E/Zp6LURJEGSCWpoMGmCFuuEI1OWuI3hmZwmULV0GsgJBh7u0rwqioxhRU95euUuviqBDN8ruX/vP/4bwYolXw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.0.tgz",
+ "integrity": "sha512-LV6X1ry+sKjseQsIFz3e6XAZYxwidvmeJFnVF08fq98q08dF1mJYI0lDq/LmH/jas+R4s0pwnNGiz1hfC4ZUBw==",
"dev": true,
"requires": {
- "@jest/console": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/console": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
}
},
"@jest/test-sequencer": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.5.3.tgz",
- "integrity": "sha512-Wqzb7aQ13L3T47xHdpUqYMOpiqz6Dx2QDDghp5AV/eUDXR7JieY+E1s233TQlNyl+PqtqgjVokmyjzX/HA51BA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.0.tgz",
+ "integrity": "sha512-rWPTMa+8rejvePZnJmnKkmKWh0qILFDPpN0qbSif+KNGvFxqqDGafMo4P2Y8+I9XWrZQBeXL9IxPL4ZzDgRlbw==",
"dev": true,
"requires": {
- "@jest/test-result": "^26.5.2",
+ "@jest/test-result": "^26.6.0",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^26.5.2",
- "jest-runner": "^26.5.3",
- "jest-runtime": "^26.5.3"
+ "jest-haste-map": "^26.6.0",
+ "jest-runner": "^26.6.0",
+ "jest-runtime": "^26.6.0"
}
},
"@jest/transform": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.5.2.tgz",
- "integrity": "sha512-AUNjvexh+APhhmS8S+KboPz+D3pCxPvEAGduffaAJYxIFxGi/ytZQkrqcKDUU0ERBAo5R7087fyOYr2oms1seg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.0.tgz",
+ "integrity": "sha512-NUNA1NMCyVV9g5NIQF1jzW7QutQhB/HAocteCiUyH0VhmLXnGMTfPYQu1G6IjPk+k1SWdh2PD+Zs1vMqbavWzg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"babel-plugin-istanbul": "^6.0.0",
"chalk": "^4.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^26.5.2",
+ "jest-haste-map": "^26.6.0",
"jest-regex-util": "^26.0.0",
- "jest-util": "^26.5.2",
+ "jest-util": "^26.6.0",
"micromatch": "^4.0.2",
"pirates": "^4.0.1",
"slash": "^3.0.0",
@@ -5603,9 +5616,9 @@
}
},
"@jest/types": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz",
- "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.0.tgz",
+ "integrity": "sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -5644,9 +5657,9 @@
"dev": true
},
"@types/yargs": {
- "version": "15.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.8.tgz",
- "integrity": "sha512-b0BYzFUzBpOhPjpl1wtAHU994jBeKF4TKVlT7ssFv44T617XNcPdRoG4AzHLVshLzlrF7i3lTelH7UbuNYV58Q==",
+ "version": "15.0.9",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz",
+ "integrity": "sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
@@ -5700,13 +5713,13 @@
}
},
"babel-jest": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.5.2.tgz",
- "integrity": "sha512-U3KvymF3SczA3vOL/cgiUFOznfMET+XDIXiWnoJV45siAp2pLMG8i2+/MGZlAC3f/F6Q40LR4M4qDrWZ9wkK8A==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.0.tgz",
+ "integrity": "sha512-JI66yILI7stzjHccAoQtRKcUwJrJb4oMIxLTirL3GdAjGpaUBQSjZDFi9LsPkN4gftsS4R2AThAJwOjJxadwbg==",
"dev": true,
"requires": {
- "@jest/transform": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/transform": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/babel__core": "^7.1.7",
"babel-plugin-istanbul": "^6.0.0",
"babel-preset-jest": "^26.5.0",
@@ -5896,16 +5909,16 @@
}
},
"expect": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-26.5.3.tgz",
- "integrity": "sha512-kkpOhGRWGOr+TEFUnYAjfGvv35bfP+OlPtqPIJpOCR9DVtv8QV+p8zG0Edqafh80fsjeE+7RBcVUq1xApnYglw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.0.tgz",
+ "integrity": "sha512-EzhbZ1tbwcaa5Ok39BI11flIMeIUSlg1QsnXOrleaMvltwHsvIQPBtL710l+ma+qDFLUgktCXK4YuQzmHdm7cg==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"ansi-styles": "^4.0.0",
"jest-get-type": "^26.3.0",
- "jest-matcher-utils": "^26.5.2",
- "jest-message-util": "^26.5.2",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
"jest-regex-util": "^26.0.0"
}
},
@@ -5996,16 +6009,16 @@
}
},
"@babel/core": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.1.tgz",
- "integrity": "sha512-6bGmltqzIJrinwRRdczQsMhruSi9Sqty9Te+/5hudn4Izx/JYRhW1QELpR+CIL0gC/c9A7WroH6FmkDGxmWx3w==",
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz",
+ "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.1",
"@babel/helper-module-transforms": "^7.12.1",
"@babel/helpers": "^7.12.1",
- "@babel/parser": "^7.12.1",
+ "@babel/parser": "^7.12.3",
"@babel/template": "^7.10.4",
"@babel/traverse": "^7.12.1",
"@babel/types": "^7.12.1",
@@ -6044,12 +6057,6 @@
"lodash": "^4.17.19"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -6059,41 +6066,41 @@
}
},
"jest-config": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.5.3.tgz",
- "integrity": "sha512-NVhZiIuN0GQM6b6as4CI5FSCyXKxdrx5ACMCcv/7Pf+TeCajJhJc+6dwgdAVPyerUFB9pRBIz3bE7clSrRge/w==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.0.tgz",
+ "integrity": "sha512-RCR1Kf7MGJ5waVCvrj/k3nCAJKquWZlzs8rkskzj0KlG392hNBOaYd5FQ4cCac08j6pwfIDOwNvMcy0/FqguJg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^26.5.3",
- "@jest/types": "^26.5.2",
- "babel-jest": "^26.5.2",
+ "@jest/test-sequencer": "^26.6.0",
+ "@jest/types": "^26.6.0",
+ "babel-jest": "^26.6.0",
"chalk": "^4.0.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
"graceful-fs": "^4.2.4",
- "jest-environment-jsdom": "^26.5.2",
- "jest-environment-node": "^26.5.2",
+ "jest-environment-jsdom": "^26.6.0",
+ "jest-environment-node": "^26.6.0",
"jest-get-type": "^26.3.0",
- "jest-jasmine2": "^26.5.3",
+ "jest-jasmine2": "^26.6.0",
"jest-regex-util": "^26.0.0",
- "jest-resolve": "^26.5.2",
- "jest-util": "^26.5.2",
- "jest-validate": "^26.5.3",
+ "jest-resolve": "^26.6.0",
+ "jest-util": "^26.6.0",
+ "jest-validate": "^26.6.0",
"micromatch": "^4.0.2",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-diff": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.5.2.tgz",
- "integrity": "sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.0.tgz",
+ "integrity": "sha512-IH09rKsdWY8YEY7ii2BHlSq59oXyF2pK3GoK+hOK9eD/x6009eNB5Jv1shLMKgxekodPzLlV7eZP1jPFQYds8w==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"diff-sequences": "^26.5.0",
"jest-get-type": "^26.3.0",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-docblock": {
@@ -6106,45 +6113,45 @@
}
},
"jest-each": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.5.2.tgz",
- "integrity": "sha512-w7D9FNe0m2D3yZ0Drj9CLkyF/mGhmBSULMQTypzAKR746xXnjUrK8GUJdlLTWUF6dd0ks3MtvGP7/xNFr9Aphg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.0.tgz",
+ "integrity": "sha512-7LzSNwNviYnm4FWK46itIE03NqD/8O8/7tVQ5rwTdTNrmPMQoQ1Z7hEFQ1uzRReluOFislpurpnQ0QsclSiDkA==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"chalk": "^4.0.0",
"jest-get-type": "^26.3.0",
- "jest-util": "^26.5.2",
- "pretty-format": "^26.5.2"
+ "jest-util": "^26.6.0",
+ "pretty-format": "^26.6.0"
}
},
"jest-environment-jsdom": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.5.2.tgz",
- "integrity": "sha512-fWZPx0bluJaTQ36+PmRpvUtUlUFlGGBNyGX1SN3dLUHHMcQ4WseNEzcGGKOw4U5towXgxI4qDoI3vwR18H0RTw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.0.tgz",
+ "integrity": "sha512-bXO9IG7a3YlyiHxwfKF+OWoTA+GIw4FrD+Y0pb6CC+nKs5JuSRZmR2ovEX6PWo6KY42ka3JoZOp3KEnXiFPPCg==",
"dev": true,
"requires": {
- "@jest/environment": "^26.5.2",
- "@jest/fake-timers": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/environment": "^26.6.0",
+ "@jest/fake-timers": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
- "jest-mock": "^26.5.2",
- "jest-util": "^26.5.2",
+ "jest-mock": "^26.6.0",
+ "jest-util": "^26.6.0",
"jsdom": "^16.4.0"
}
},
"jest-environment-node": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.5.2.tgz",
- "integrity": "sha512-YHjnDsf/GKFCYMGF1V+6HF7jhY1fcLfLNBDjhAOvFGvt6d8vXvNdJGVM7uTZ2VO/TuIyEFhPGaXMX5j3h7fsrA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.0.tgz",
+ "integrity": "sha512-kWU6ZD1h6fs7sIl6ufuK0sXW/3d6WLaj48iow0NxhgU6eY89d9K+0MVmE0cRcVlh53yMyxTK6b+TnhLOnlGp/A==",
"dev": true,
"requires": {
- "@jest/environment": "^26.5.2",
- "@jest/fake-timers": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/environment": "^26.6.0",
+ "@jest/fake-timers": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
- "jest-mock": "^26.5.2",
- "jest-util": "^26.5.2"
+ "jest-mock": "^26.6.0",
+ "jest-util": "^26.6.0"
}
},
"jest-get-type": {
@@ -6154,12 +6161,12 @@
"dev": true
},
"jest-haste-map": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.5.2.tgz",
- "integrity": "sha512-lJIAVJN3gtO3k4xy+7i2Xjtwh8CfPcH08WYjZpe9xzveDaqGw9fVNCpkYu6M525wKFVkLmyi7ku+DxCAP1lyMA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.0.tgz",
+ "integrity": "sha512-RpNqAGMR58uG9E9vWITorX2/R7he/tSbHWldX5upt1ymEcmCaXczqXxjqI6xOtRR8Ev6ZEYDfgSA5Fy7WHUL5w==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/graceful-fs": "^4.1.2",
"@types/node": "*",
"anymatch": "^3.0.3",
@@ -6168,7 +6175,7 @@
"graceful-fs": "^4.2.4",
"jest-regex-util": "^26.0.0",
"jest-serializer": "^26.5.0",
- "jest-util": "^26.5.2",
+ "jest-util": "^26.6.0",
"jest-worker": "^26.5.0",
"micromatch": "^4.0.2",
"sane": "^4.0.3",
@@ -6176,61 +6183,61 @@
}
},
"jest-jasmine2": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.5.3.tgz",
- "integrity": "sha512-nFlZOpnGlNc7y/+UkkeHnvbOM+rLz4wB1AimgI9QhtnqSZte0wYjbAm8hf7TCwXlXgDwZxAXo6z0a2Wzn9FoOg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.0.tgz",
+ "integrity": "sha512-2E3c+0A9y2OIK5caw5qlcm3b4doaf8FSfXKTX3xqKTUJoR4zXh0xvERBNWxZP9xMNXEi/2Z3LVsZpR2hROgixA==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^26.5.2",
+ "@jest/environment": "^26.6.0",
"@jest/source-map": "^26.5.0",
- "@jest/test-result": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/test-result": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
"chalk": "^4.0.0",
"co": "^4.6.0",
- "expect": "^26.5.3",
+ "expect": "^26.6.0",
"is-generator-fn": "^2.0.0",
- "jest-each": "^26.5.2",
- "jest-matcher-utils": "^26.5.2",
- "jest-message-util": "^26.5.2",
- "jest-runtime": "^26.5.3",
- "jest-snapshot": "^26.5.3",
- "jest-util": "^26.5.2",
- "pretty-format": "^26.5.2",
+ "jest-each": "^26.6.0",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-runtime": "^26.6.0",
+ "jest-snapshot": "^26.6.0",
+ "jest-util": "^26.6.0",
+ "pretty-format": "^26.6.0",
"throat": "^5.0.0"
}
},
"jest-leak-detector": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.5.2.tgz",
- "integrity": "sha512-h7ia3dLzBFItmYERaLPEtEKxy3YlcbcRSjj0XRNJgBEyODuu+3DM2o62kvIFvs3PsaYoIIv+e+nLRI61Dj1CNw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.0.tgz",
+ "integrity": "sha512-3oMv34imWTl1/nwKnmE/DxYo3QqHnZeF3nO6UzldppkhW0Za7OY2DYyWiamqVzwdUrjhoQkY5g+aF6Oc3alYEQ==",
"dev": true,
"requires": {
"jest-get-type": "^26.3.0",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-matcher-utils": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz",
- "integrity": "sha512-W9GO9KBIC4gIArsNqDUKsLnhivaqf8MSs6ujO/JDcPIQrmY+aasewweXVET8KdrJ6ADQaUne5UzysvF/RR7JYA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.0.tgz",
+ "integrity": "sha512-BUy/dQYb7ELGRazmK4ZVkbfPYCaNnrMtw1YljVhcKzWUxBM0xQ+bffrfnMLdRZp4wUUcT4ahaVnA3VWZtXWP9Q==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
- "jest-diff": "^26.5.2",
+ "jest-diff": "^26.6.0",
"jest-get-type": "^26.3.0",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-message-util": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.5.2.tgz",
- "integrity": "sha512-Ocp9UYZ5Jl15C5PNsoDiGEk14A4NG0zZKknpWdZGoMzJuGAkVt10e97tnEVMYpk7LnQHZOfuK2j/izLBMcuCZw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.0.tgz",
+ "integrity": "sha512-WPAeS38Kza29f04I0iOIQrXeiebRXjmn6cFehzI7KKJOgT0NmqYAcLgjWnIAfKs5FBmEQgje1kXab0DaLKCl2w==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
@@ -6240,12 +6247,12 @@
}
},
"jest-mock": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.5.2.tgz",
- "integrity": "sha512-9SiU4b5PtO51v0MtJwVRqeGEroH66Bnwtq4ARdNP7jNXbpT7+ByeWNAk4NeT/uHfNSVDXEXgQo1XRuwEqS6Rdw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.0.tgz",
+ "integrity": "sha512-HsNmL8vVIn1rL1GWA21Drpy9Cl+7GImwbWz/0fkWHrUXVzuaG7rP0vwLtE+/n70Mt0U8nPkz8fxioi3SC0wqhw==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/node": "*"
}
},
@@ -6262,89 +6269,90 @@
"dev": true
},
"jest-resolve": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.5.2.tgz",
- "integrity": "sha512-XsPxojXGRA0CoDD7Vis59ucz2p3cQFU5C+19tz3tLEAlhYKkK77IL0cjYjikY9wXnOaBeEdm1rOgSJjbZWpcZg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz",
+ "integrity": "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
"jest-pnp-resolver": "^1.2.2",
- "jest-util": "^26.5.2",
+ "jest-util": "^26.6.0",
"read-pkg-up": "^7.0.1",
"resolve": "^1.17.0",
"slash": "^3.0.0"
},
"dependencies": {
"resolve": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
- "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
+ "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
"dev": true,
"requires": {
+ "is-core-module": "^2.0.0",
"path-parse": "^1.0.6"
}
}
}
},
"jest-runner": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.5.3.tgz",
- "integrity": "sha512-qproP0Pq7IIule+263W57k2+8kWCszVJTC9TJWGUz0xJBr+gNiniGXlG8rotd0XxwonD5UiJloYoSO5vbUr5FQ==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.0.tgz",
+ "integrity": "sha512-QpeN6pje8PQvFgT+wYOlzeycKd67qAvSw5FgYBiX2cTW+QTiObTzv/k09qRvT09rcCntFxUhy9VB1mgNGFLYIA==",
"dev": true,
"requires": {
- "@jest/console": "^26.5.2",
- "@jest/environment": "^26.5.2",
- "@jest/test-result": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/console": "^26.6.0",
+ "@jest/environment": "^26.6.0",
+ "@jest/test-result": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
"chalk": "^4.0.0",
"emittery": "^0.7.1",
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
- "jest-config": "^26.5.3",
+ "jest-config": "^26.6.0",
"jest-docblock": "^26.0.0",
- "jest-haste-map": "^26.5.2",
- "jest-leak-detector": "^26.5.2",
- "jest-message-util": "^26.5.2",
- "jest-resolve": "^26.5.2",
- "jest-runtime": "^26.5.3",
- "jest-util": "^26.5.2",
+ "jest-haste-map": "^26.6.0",
+ "jest-leak-detector": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-resolve": "^26.6.0",
+ "jest-runtime": "^26.6.0",
+ "jest-util": "^26.6.0",
"jest-worker": "^26.5.0",
"source-map-support": "^0.5.6",
"throat": "^5.0.0"
}
},
"jest-runtime": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.5.3.tgz",
- "integrity": "sha512-IDjalmn2s/Tc4GvUwhPHZ0iaXCdMRq5p6taW9P8RpU+FpG01O3+H8z+p3rDCQ9mbyyyviDgxy/LHPLzrIOKBkQ==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.0.tgz",
+ "integrity": "sha512-JEz4YGnybFvtN4NLID6lsZf0bcd8jccwjWcG5TRE3fYVnxoX1egTthPjnC4btIwWJ6QaaHhtOQ/E3AGn8iClAw==",
"dev": true,
"requires": {
- "@jest/console": "^26.5.2",
- "@jest/environment": "^26.5.2",
- "@jest/fake-timers": "^26.5.2",
- "@jest/globals": "^26.5.3",
+ "@jest/console": "^26.6.0",
+ "@jest/environment": "^26.6.0",
+ "@jest/fake-timers": "^26.6.0",
+ "@jest/globals": "^26.6.0",
"@jest/source-map": "^26.5.0",
- "@jest/test-result": "^26.5.2",
- "@jest/transform": "^26.5.2",
- "@jest/types": "^26.5.2",
+ "@jest/test-result": "^26.6.0",
+ "@jest/transform": "^26.6.0",
+ "@jest/types": "^26.6.0",
"@types/yargs": "^15.0.0",
"chalk": "^4.0.0",
"collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
"glob": "^7.1.3",
"graceful-fs": "^4.2.4",
- "jest-config": "^26.5.3",
- "jest-haste-map": "^26.5.2",
- "jest-message-util": "^26.5.2",
- "jest-mock": "^26.5.2",
+ "jest-config": "^26.6.0",
+ "jest-haste-map": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-mock": "^26.6.0",
"jest-regex-util": "^26.0.0",
- "jest-resolve": "^26.5.2",
- "jest-snapshot": "^26.5.3",
- "jest-util": "^26.5.2",
- "jest-validate": "^26.5.3",
+ "jest-resolve": "^26.6.0",
+ "jest-snapshot": "^26.6.0",
+ "jest-util": "^26.6.0",
+ "jest-validate": "^26.6.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0",
"yargs": "^15.4.1"
@@ -6361,26 +6369,26 @@
}
},
"jest-snapshot": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.5.3.tgz",
- "integrity": "sha512-ZgAk0Wm0JJ75WS4lGaeRfa0zIgpL0KD595+XmtwlIEMe8j4FaYHyZhP1LNOO+8fXq7HJ3hll54+sFV9X4+CGVw==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.0.tgz",
+ "integrity": "sha512-mcqJZeIZqxomvBcsaiIbiEe2g7K1UxnUpTwjMoHb+DX4uFGnuZoZ6m28YOYRyCfZsdU9mmq73rNBnEH2atTR4Q==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/babel__traverse": "^7.0.4",
"@types/prettier": "^2.0.0",
"chalk": "^4.0.0",
- "expect": "^26.5.3",
+ "expect": "^26.6.0",
"graceful-fs": "^4.2.4",
- "jest-diff": "^26.5.2",
+ "jest-diff": "^26.6.0",
"jest-get-type": "^26.3.0",
- "jest-haste-map": "^26.5.2",
- "jest-matcher-utils": "^26.5.2",
- "jest-message-util": "^26.5.2",
- "jest-resolve": "^26.5.2",
+ "jest-haste-map": "^26.6.0",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-resolve": "^26.6.0",
"natural-compare": "^1.4.0",
- "pretty-format": "^26.5.2",
+ "pretty-format": "^26.6.0",
"semver": "^7.3.2"
},
"dependencies": {
@@ -6393,12 +6401,12 @@
}
},
"jest-util": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.5.2.tgz",
- "integrity": "sha512-WTL675bK+GSSAYgS8z9FWdCT2nccO1yTIplNLPlP0OD8tUk/H5IrWKMMRudIQQ0qp8bb4k+1Qa8CxGKq9qnYdg==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.0.tgz",
+ "integrity": "sha512-/cUGqcnKeZMjvTQLfJo65nBOEZ/k0RB/8usv2JpfYya05u0XvBmKkIH5o5c4nCh9DD61B1YQjMGGqh1Ha0aXdg==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"@types/node": "*",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
@@ -6407,17 +6415,17 @@
}
},
"jest-validate": {
- "version": "26.5.3",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.5.3.tgz",
- "integrity": "sha512-LX07qKeAtY+lsU0o3IvfDdN5KH9OulEGOMN1sFo6PnEf5/qjS1LZIwNk9blcBeW94pQUI9dLN9FlDYDWI5tyaA==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.0.tgz",
+ "integrity": "sha512-FKHNqvh1Pgs4NWas56gsTPmjcIoGAAzSVUCK1+g8euzuCGbmdEr8LRTtOEFjd29uMZUk0PhzmzKGlHPe6j3UWw==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"camelcase": "^6.0.0",
"chalk": "^4.0.0",
"jest-get-type": "^26.3.0",
"leven": "^3.1.0",
- "pretty-format": "^26.5.2"
+ "pretty-format": "^26.6.0"
}
},
"jest-worker": {
@@ -6548,12 +6556,12 @@
"dev": true
},
"pretty-format": {
- "version": "26.5.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz",
- "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==",
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.0.tgz",
+ "integrity": "sha512-Uumr9URVB7bm6SbaByXtx+zGlS+0loDkFMHP0kHahMjmfCtmFY03iqd++5v3Ld6iB5TocVXlBN/T+DXMn9d4BA==",
"dev": true,
"requires": {
- "@jest/types": "^26.5.2",
+ "@jest/types": "^26.6.0",
"ansi-regex": "^5.0.0",
"ansi-styles": "^4.0.0",
"react-is": "^16.12.0"
@@ -6630,6 +6638,12 @@
}
}
},
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
diff --git a/package.json b/package.json
index 784436a..44469aa 100644
--- a/package.json
+++ b/package.json
@@ -43,13 +43,13 @@
"devDependencies": {
"@types/jest": "^26.0.14",
"@types/node": "^14.11.10",
- "@typescript-eslint/parser": "^4.4.1",
+ "@typescript-eslint/parser": "^4.5.0",
"@vercel/ncc": "^0.24.1",
"eslint": "^7.11.0",
"eslint-plugin-github": "^4.1.1",
"eslint-plugin-jest": "^24.1.0",
"jest": "^24.9.0",
- "jest-circus": "^26.5.3",
+ "jest-circus": "^26.6.0",
"js-yaml": "^3.14.0",
"prettier": "2.1.2",
"ts-jest": "^24.3.0",
diff --git a/src/configuration.ts b/src/configuration.ts
index e2c25af..4e421f3 100644
--- a/src/configuration.ts
+++ b/src/configuration.ts
@@ -9,6 +9,7 @@ export interface Configuration {
empty_template: string
categories: Category[]
transformers: Transformer[]
+ tag_resolver: TagResolver
}
export interface Category {
@@ -21,6 +22,10 @@ export interface Transformer {
target: string
}
+export interface TagResolver {
+ method: string // semver, sort
+}
+
export const DefaultConfiguration: Configuration = {
max_tags_to_fetch: 200, // the amount of tags to fetch from the github API
max_pull_requests: 200, // the amount of pull requests to process
@@ -44,5 +49,9 @@ export const DefaultConfiguration: Configuration = {
labels: ['test']
}
], // the categories to support for the ordering
- transformers: [] // transformers to apply on the PR description according to the `pr_template`
+ transformers: [], // transformers to apply on the PR description according to the `pr_template`
+ tag_resolver: {
+ // defines the logic on how to resolve the previous tag, only relevant if `fromTag` is not specified
+ method: 'semver' // defines which method to use, by default it will use `semver` (dropping all non matching tags). Alternative `sort` is also available.
+ }
}
diff --git a/src/releaseNotesBuilder.ts b/src/releaseNotesBuilder.ts
index 2b9aafd..a229a79 100644
--- a/src/releaseNotesBuilder.ts
+++ b/src/releaseNotesBuilder.ts
@@ -83,7 +83,8 @@ export class ReleaseNotesBuilder {
this.toTag,
this.ignorePreReleases,
this.configuration.max_tags_to_fetch ||
- DefaultConfiguration.max_tags_to_fetch
+ DefaultConfiguration.max_tags_to_fetch,
+ this.configuration.tag_resolver || DefaultConfiguration.tag_resolver
)
if (previousTag == null) {
failOrError(
diff --git a/src/tags.ts b/src/tags.ts
index 4bd1c17..07c7b5d 100755
--- a/src/tags.ts
+++ b/src/tags.ts
@@ -2,6 +2,7 @@ import {Octokit, RestEndpointMethodTypes} from '@octokit/rest'
import * as core from '@actions/core'
import * as semver from 'semver'
import {SemVer} from 'semver'
+import {TagResolver} from './configuration'
export interface TagInfo {
name: string
@@ -52,9 +53,13 @@ export class Tags {
repo: string,
tag: string,
ignorePreReleases: boolean,
- maxTagsToFetch: number
+ maxTagsToFetch: number,
+ tagResolver: TagResolver
): Promise {
- const tags = sortTags(await this.getTags(owner, repo, maxTagsToFetch))
+ const tags = sortTags(
+ await this.getTags(owner, repo, maxTagsToFetch),
+ tagResolver
+ )
try {
const length = tags.length
@@ -94,12 +99,22 @@ export class Tags {
2020.3.1-a01
2020.3.0
*/
-export function sortTags(tags: TagInfo[]): TagInfo[] {
+export function sortTags(tags: TagInfo[], tagResolver: TagResolver): TagInfo[] {
+ if (tagResolver.method === 'sort') {
+ return stringSorting(tags)
+ } else {
+ return semVerSorting(tags)
+ }
+}
+
+function semVerSorting(tags: TagInfo[]): TagInfo[] {
// filter out tags which do not follow semver
const validatedTags = tags.filter(tag => {
const isValid = semver.valid(tag.name) !== null
- if(!isValid) {
- core.debug(`โ ๏ธ dropped tag ${tag.name} because it is not a valid semver tag`)
+ if (!isValid) {
+ core.debug(
+ `โ ๏ธ dropped tag ${tag.name} because it is not a valid semver tag`
+ )
}
return isValid
})
@@ -110,3 +125,22 @@ export function sortTags(tags: TagInfo[]): TagInfo[] {
})
return validatedTags
}
+
+function stringSorting(tags: TagInfo[]): TagInfo[] {
+ return tags.sort((b, a) => {
+ const partsA = a.name.replace(/^v/, '').split('-')
+ const partsB = b.name.replace(/^v/, '').split('-')
+ const versionCompare = partsA[0].localeCompare(partsB[0])
+ if (versionCompare !== 0) {
+ return versionCompare
+ } else {
+ if (partsA.length === 1) {
+ return 0
+ } else if (partsB.length === 1) {
+ return 1
+ } else {
+ return partsA[1].localeCompare(partsB[1])
+ }
+ }
+ })
+}