diff --git a/.all-contributorsrc b/.all-contributorsrc
index ec91a7dec9..4a02daade6 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1093,6 +1093,25 @@
"contributions": [
"bug"
]
+ },
+ {
+ "login": "yglcode",
+ "name": "Yigong Liu",
+ "avatar_url": "https://avatars.githubusercontent.com/u/11893614?v=4",
+ "profile": "https://github.com/yglcode",
+ "contributions": [
+ "bug",
+ "ideas"
+ ]
+ },
+ {
+ "login": "Cristim",
+ "name": "Cristian MΔgheruΘan-Stanciu",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95209?v=4",
+ "profile": "http://mcristi.wordpress.com",
+ "contributions": [
+ "bug"
+ ]
}
],
"repoType": "github",
diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml
index df2cee60e0..96a19e8cf9 100644
--- a/.github/workflows/gh-pages.yml
+++ b/.github/workflows/gh-pages.yml
@@ -25,7 +25,7 @@ jobs:
run: |-
echo "::set-output name=pip-cache::$(python3 -m pip cache dir)"
- name: Cache
- uses: actions/cache@v2.1.4
+ uses: actions/cache@v2.1.5
with:
path: ${{ steps.cache-locations.outputs.pip-cache }}
key: ${{ runner.os }}-${{ hashFiles('**/requirements-dev.txt') }}
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index eff6cdeb75..08824077ee 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -31,9 +31,10 @@ jobs:
with:
go-version: '1.16'
- name: Set up Java 8
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v2
with:
java-version: '8'
+ distribution: 'zulu'
- name: Set up Node 12
uses: actions/setup-node@v2.1.5
with:
@@ -57,7 +58,7 @@ jobs:
echo "::set-output name=pip-cache::$(python3 -m pip cache dir)"
echo "::set-output name=yarn-cache::$(yarn cache dir)"
- name: Cache
- uses: actions/cache@v2.1.4
+ uses: actions/cache@v2.1.5
with:
path: |-
${{ steps.cache-locations.outputs.pip-cache }}
@@ -122,9 +123,10 @@ jobs:
with:
go-version: '1.16'
- name: Set up Java 8
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v2
with:
java-version: '8'
+ distribution: 'zulu'
- name: Set up Node 12
uses: actions/setup-node@v2.1.5
with:
@@ -148,7 +150,7 @@ jobs:
echo "::set-output name=pip-cache::$(python3 -m pip cache dir)"
echo "::set-output name=yarn-cache::$(yarn cache dir)"
- name: Cache
- uses: actions/cache@v2.1.4
+ uses: actions/cache@v2.1.5
with:
path: |-
${{ steps.cache-locations.outputs.pip-cache }}
@@ -273,9 +275,10 @@ jobs:
with:
go-version: ${{ matrix.go }}
- name: Set up Java ${{ matrix.java }}
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v2
with:
java-version: ${{ matrix.java }}
+ distribution: 'zulu'
- name: Set up Node ${{ matrix.node }}
uses: actions/setup-node@v2.1.5
with:
@@ -309,7 +312,7 @@ jobs:
echo "::set-output name=pip-cache::$(python3 -m pip cache dir)"
echo "::set-output name=yarn-cache::$(yarn cache dir)"
- name: Cache
- uses: actions/cache@v2.1.4
+ uses: actions/cache@v2.1.5
with:
path: |-
${{ steps.cache-locations.outputs.pip-cache }}
diff --git a/.github/workflows/yarn-upgrade.yml b/.github/workflows/yarn-upgrade.yml
index 29243ee90b..771a9d003a 100644
--- a/.github/workflows/yarn-upgrade.yml
+++ b/.github/workflows/yarn-upgrade.yml
@@ -25,7 +25,7 @@ jobs:
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Restore Yarn cache
- uses: actions/cache@v2.1.4
+ uses: actions/cache@v2.1.5
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 02fa1eacf8..698da04c16 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,19 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+## [1.28.0](https://github.com/aws/jsii/compare/v1.27.1...v1.28.0) (2021-04-13)
+
+
+### Features
+
+* **jsii-go:** use reflect to resolve overriden methods ([#2780](https://github.com/aws/jsii/issues/2780)) ([295d189](https://github.com/aws/jsii/commit/295d189610938d5e644243af8c4d1f17f1c2a8a0)), closes [#2768](https://github.com/aws/jsii/issues/2768)
+
+
+### Bug Fixes
+
+* **dotnet:** unable to pass 2d-array of interfaces ([#2763](https://github.com/aws/jsii/issues/2763)) ([347cf69](https://github.com/aws/jsii/commit/347cf69305a82733da2dc10517cb0b911decbce1)), closes [aws/aws-cdk#12587](https://github.com/aws/aws-cdk/issues/12587)
+* deprecated symbol stripping does not strip out heritage clause with imported type ([#2783](https://github.com/aws/jsii/issues/2783)) ([e87d879](https://github.com/aws/jsii/commit/e87d879f9b637a769b6b62af5fe7711ca0b8a3c5))
+
## [1.27.1](https://github.com/aws/jsii/compare/v1.27.0...v1.27.1) (2021-04-12)
### Bug Fixes
diff --git a/README.md b/README.md
index 96c6fd00df..668466e00b 100644
--- a/README.md
+++ b/README.md
@@ -86,110 +86,112 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Christophe Vico π |
Christopher Currie π» π€ |
Christopher Rybicki π |
+ Cristian MΔgheruΘan-Stanciu π |
CyrusNajmabadi π π€ |
Daniel Dinu π π» |
- Daniel Schroeder π π» π π€ π§ |
+ Daniel Schroeder π π» π π€ π§ |
Dave Slotnick π |
Donald Stufft π π» π€ π |
Dongie Agnir π» π |
Eduardo Sena S. Rosa π |
Elad Ben-Israel π π» π€ π§ π π’ |
Eli Polonsky π π» π€ π§ π |
- Eric Z. Beard π |
+ Eric Z. Beard π |
Erik Karlsson π |
Eugene Kozlov π» |
Fabio Gentile π |
Florian Eitel π€ |
Graham Lea π€ π |
Hamza Assyad π π» π€ π |
- Hari Pachuveetil π π |
+ Hari Pachuveetil π π |
Hsing-Hui Hsu π» π π€ π |
James Kelley π |
James Mead π» |
James Siri π» π§ |
Jason Del Ponte π€ π |
Jason Fulghum π€ π π |
- Jerry Kindall π π€ |
+ Jerry Kindall π π€ |
Jimmy Gaussen π€ |
Jon Steinich π π€ π» |
Joseph Lawson π |
Joseph Martin π |
Junix π |
Justin Taylor π |
- Kyle Thomson π» π |
+ Kyle Thomson π» π |
Leandro Padua π |
Maja S Bratseth π |
Marcos Diez π |
Matthew Bonig π π |
Matthew Pirocchi π» π€ π |
Mike Lane π |
- Mitch Garnaat π π» π€ π |
+ Mitch Garnaat π π» π€ π |
Mitchell Valine π π» π€ π§ π |
Mohamad Soufan π |
Neta Nir π» π€ π§ π |
Nick Lynch π π» π§ π |
Niranjan Jayakar π π» π€ π§ π |
Noah Litov π» π§ π |
- PIDZ - Bart π€ |
+ PIDZ - Bart π€ |
Petr Kacer π |
Petra Barus π» |
Philip Cali π€ |
Quentin Loos π€ |
Raphael π |
Richard H Boyd π |
- Rico Huijbers π π» π€ π§ π |
+ Rico Huijbers π π» π€ π§ π |
Romain Marcadier π π» π¨ π€ π§ π π |
SADIK KUZU π |
SK π€ |
Sam Fink π» π |
Sam Goodwin π |
Sebastian Korfmann π π» π€ |
- Shane Witbeck π€ |
+ Shane Witbeck π€ |
Shiv Lakshminarayan π» π§ π |
Somaya π» π€ π§ π |
The Gitter Badger π» π§ |
Thomas Poignant π |
Thomas Steinbach π |
Thorsten Hoeger π» |
- Tim Wagner π π€ |
+ Tim Wagner π π€ |
Tobias Lidskog π» |
Ty Coghlan π |
Tyler van Hensbergen π€ |
Vlad Hrybok π |
Vladimir Shchur π |
Yan Zhulanow π» |
- ajnarang π€ |
+ Yigong Liu π π€ |
+ ajnarang π€ |
aniljava π» |
deccy-mcc π |
dependabot-preview[bot] π π§ |
dependabot[bot] π§ |
dheffx π |
- gregswdl π |
- mattBrzezinski π |
+ gregswdl π |
+ mattBrzezinski π |
mergify[bot] π§ |
seiyashima42 π π» π |
sullis π» |
diff --git a/gh-pages/content/user-guides/lib-user/language-specific/go.md b/gh-pages/content/user-guides/lib-user/language-specific/go.md
index 375ff682b7..137632ffaf 100644
--- a/gh-pages/content/user-guides/lib-user/language-specific/go.md
+++ b/gh-pages/content/user-guides/lib-user/language-specific/go.md
@@ -121,10 +121,8 @@ following convention: `New_Override`, and receives the *overriding*
struct instance as the first parameter.
The **go** `struct` that *extends* the base *jsii class* must anonymously embed
-the *jsii class*' **go** interface, while specifying the `overrides:"..."` field
-tag. The value of the tag is a comma-separated list of **go** methods that are
-locally overridden (note: in the case of *property accessors*, the *getter* name
-is to be used, even if only the *setter* is overridden).
+the *jsii class*' **go** interface. All overridden method *must* be defined
+using a pointer receiver.
Assuming the following abstract base class:
@@ -165,8 +163,8 @@ import (
)
type childClass struct {
- // We implement AbstractMethod, AbstractReadonlyProperty, and override the setter for ConcreteProperty
- jsiimodule.AbstractBaseClass `overrides:"AbstractMethod,AbstractReadonlyProperty,ConcreteProperty"`
+ // Anonymous embed of the "base class".
+ jsiimodule.AbstractBaseClass
// Our own storage
stringValue string
diff --git a/gh-pages/requirements-dev.txt b/gh-pages/requirements-dev.txt
index b70d221646..b91cbc02ee 100644
--- a/gh-pages/requirements-dev.txt
+++ b/gh-pages/requirements-dev.txt
@@ -1,4 +1,4 @@
mkdocs~=1.1.2
mkdocs-awesome-pages-plugin~=2.5.0
-mkdocs-material~=7.0.7
+mkdocs-material~=7.1.1
mkdocs-git-revision-date-plugin~=0.3.1
diff --git a/jest.config.ts b/jest.config.ts
index 590dba534b..9914401933 100644
--- a/jest.config.ts
+++ b/jest.config.ts
@@ -1,5 +1,6 @@
import type { Config } from '@jest/types';
import { defaults } from 'jest-config';
+import { cpus } from 'os';
import { env } from 'process';
/**
@@ -28,6 +29,10 @@ const config: Config.InitialOptions = {
testEnvironment: 'node',
testMatch: ['**/?(*.)+(spec|test).ts'],
testRunner: 'jest-circus/runner',
+ // Adjust maximum concurrency to specifically disallow running unbounded. Allow a minimum of 2 concurrent
+ // tests, and a maximum of 4 (which is the libuv thread pool size - more will likely cause wait times to
+ // quickly run out of control, and make everything very, very slow.)
+ maxConcurrency: Math.max(Math.min(cpus().length - 1, 4), 2),
// When in Continuous Integration, allow double the default test timeout (assuming "frugal" runner type)
testTimeout: env.CI === 'true' ? 10_000 : undefined,
transform: {
diff --git a/lerna.json b/lerna.json
index dc6f050d66..cc51801f52 100644
--- a/lerna.json
+++ b/lerna.json
@@ -2,11 +2,13 @@
"lerna": "3.13.1",
"npmClient": "yarn",
"useWorkspaces": true,
- "packages": ["packages/*"],
+ "packages": [
+ "packages/*"
+ ],
"command": {
"bootstrap": {
"rejectCycles": true
}
},
- "version": "1.27.1"
+ "version": "1.28.0"
}
diff --git a/package.json b/package.json
index fc23b75147..14d3836ce7 100644
--- a/package.json
+++ b/package.json
@@ -16,8 +16,8 @@
},
"devDependencies": {
"@jest/types": "^26.6.2",
- "@typescript-eslint/eslint-plugin": "^4.20.0",
- "@typescript-eslint/parser": "^4.20.0",
+ "@typescript-eslint/eslint-plugin": "^4.21.0",
+ "@typescript-eslint/parser": "^4.21.0",
"all-contributors-cli": "^6.20.0",
"eslint": "^7.23.0",
"eslint-config-prettier": "^8.1.0",
@@ -30,7 +30,7 @@
"jest-expect-message": "^1.0.2",
"lerna": "^4.0.0",
"prettier": "^2.2.1",
- "standard-version": "^9.1.1",
+ "standard-version": "^9.2.0",
"ts-jest": "^26.5.4",
"ts-node": "^9.1.1",
"typescript": "~3.9.9"
diff --git a/packages/@jsii/Directory.Build.targets b/packages/@jsii/Directory.Build.targets
index 3cf4d06899..236a616094 100644
--- a/packages/@jsii/Directory.Build.targets
+++ b/packages/@jsii/Directory.Build.targets
@@ -10,7 +10,7 @@
-
+
diff --git a/packages/@jsii/dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs b/packages/@jsii/dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs
index e5a0b5d111..0177bfe499 100644
--- a/packages/@jsii/dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs
+++ b/packages/@jsii/dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs
@@ -1512,5 +1512,18 @@ public override String Repeat(String word)
return word;
}
}
+
+ [Fact(DisplayName = Prefix + nameof(ArrayOfInterfaces))]
+ public void ArrayOfInterfaces()
+ {
+ var bells = new IBell[1][];
+ bells[0] = new IBell[1];
+ bells[0][0] = new Bell();
+
+ var allTypes = new AllTypes();
+ allTypes.AnyProperty = bells;
+
+ Assert.Equal(bells, allTypes.AnyProperty);
+ }
}
}
diff --git a/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/Services/Converters/FrameworkToJsiiConverter.cs b/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/Services/Converters/FrameworkToJsiiConverter.cs
index 4cfddde92c..b89c0b07c2 100644
--- a/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/Services/Converters/FrameworkToJsiiConverter.cs
+++ b/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/Services/Converters/FrameworkToJsiiConverter.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
@@ -348,6 +348,12 @@ TypeReference InferType(IReferenceMap referenceMap, Type type)
return new TypeReference(enumAttribute.FullyQualifiedName);
}
+ var interfaceAttribute = type.GetCustomAttribute();
+ if (interfaceAttribute != null)
+ {
+ return new TypeReference(interfaceAttribute.FullyQualifiedName);
+ }
+
var structAttribute = type.GetCustomAttribute();
if (structAttribute != null)
{
diff --git a/packages/@jsii/go-runtime-test/project/compliance_test.go b/packages/@jsii/go-runtime-test/project/compliance_test.go
index 751af539fb..56b1f6ba3e 100644
--- a/packages/@jsii/go-runtime-test/project/compliance_test.go
+++ b/packages/@jsii/go-runtime-test/project/compliance_test.go
@@ -347,7 +347,7 @@ func (suite *ComplianceSuite) TestEqualsIsResistantToPropertyShadowingResultVari
}
type overridableProtectedMemberDerived struct {
- calc.OverridableProtectedMember `overrides:"OverrideReadOnly,OverrideReadWrite"`
+ calc.OverridableProtectedMember
}
func newOverridableProtectedMemberDerived() *overridableProtectedMemberDerived {
@@ -381,7 +381,7 @@ func newImplementsAdditionalInterface(s calc.StructB) *implementsAdditionalInter
return &n
}
-func (x implementsAdditionalInterface) ReturnStruct() *calc.StructB {
+func (x *implementsAdditionalInterface) ReturnStruct() *calc.StructB {
return &x._struct
}
@@ -500,7 +500,7 @@ func (suite *ComplianceSuite) TestCallbacksCorrectlyDeserializeArguments() {
}
type testCallbacksCorrectlyDeserializeArgumentsDataRenderer struct {
- calc.DataRenderer `overrides:"RenderMap"`
+ calc.DataRenderer
}
func NewTestCallbacksCorrectlyDeserializeArgumentsDataRenderer() *testCallbacksCorrectlyDeserializeArgumentsDataRenderer {
@@ -610,7 +610,7 @@ func (suite *ComplianceSuite) TestNullShouldBeTreatedAsUndefined() {
}
type myOverridableProtectedMember struct {
- calc.OverridableProtectedMember `overrides:"OverrideMe"`
+ calc.OverridableProtectedMember
}
func newMyOverridableProtectedMember() *myOverridableProtectedMember {
@@ -619,7 +619,7 @@ func newMyOverridableProtectedMember() *myOverridableProtectedMember {
return &m
}
-func (x myOverridableProtectedMember) OverrideMe() *string {
+func (x *myOverridableProtectedMember) OverrideMe() *string {
return jsii.String("Cthulhu Fhtagn!")
}
@@ -685,7 +685,7 @@ func (suite *ComplianceSuite) TestMapReturnedByMethodCanBeRead() {
}
type myAbstractSuite struct {
- calc.AbstractSuite `overrides:"SomeMethod,Property"`
+ calc.AbstractSuite
_property *string
}
@@ -724,10 +724,10 @@ func (suite *ComplianceSuite) TestCanOverrideProtectedSetter() {
}
type TestCanOverrideProtectedSetterOverridableProtectedMember struct {
- calc.OverridableProtectedMember `overrides:"OverrideReadWrite"`
+ calc.OverridableProtectedMember
}
-func (x TestCanOverrideProtectedSetterOverridableProtectedMember) SetOverrideReadWrite(val *string) {
+func (x *TestCanOverrideProtectedSetterOverridableProtectedMember) SetOverrideReadWrite(val *string) {
x.OverridableProtectedMember.SetOverrideReadWrite(jsii.String(fmt.Sprintf("zzzzzzzzz%s", *val)))
}
@@ -737,7 +737,6 @@ func newTestCanOverrideProtectedSetterOverridableProtectedMember() *TestCanOverr
return &m
}
-
func (suite *ComplianceSuite) TestObjRefsAreLabelledUsingWithTheMostCorrectType() {
require := suite.Require()
@@ -952,7 +951,7 @@ func (suite *ComplianceSuite) TestPropertyOverrides_Get_Calls_Super() {
}
type testPropertyOverridesGetCallsSuper struct {
- calc.SyncVirtualMethods `overrides:"TheProperty"`
+ calc.SyncVirtualMethods
}
func (t *testPropertyOverridesGetCallsSuper) TheProperty() *string {
@@ -1063,7 +1062,7 @@ func (suite *ComplianceSuite) TestPropertyOverrides_Get_Throws() {
}
type testPropertyOverridesGetThrows struct {
- calc.SyncVirtualMethods `overrides:"TheProperty"`
+ calc.SyncVirtualMethods
}
func (t *testPropertyOverridesGetThrows) TheProperty() *string {
@@ -1143,7 +1142,7 @@ func (suite *ComplianceSuite) TestPropertyOverrides_Set_Calls_Super() {
}
type testPropertyOverridesSetCallsSuper struct {
- calc.SyncVirtualMethods `overrides:"TheProperty"`
+ calc.SyncVirtualMethods
}
func (t *testPropertyOverridesSetCallsSuper) SetTheProperty(value *string) {
@@ -1327,8 +1326,8 @@ func (suite *ComplianceSuite) TestObjectIdDoesNotGetReallocatedWhenTheConstructo
}
type partiallyInitializedThisConsumerImpl struct {
- calc.PartiallyInitializedThisConsumer `overrides:"ConsumePartiallyInitializedThis"`
- require *require.Assertions
+ calc.PartiallyInitializedThisConsumer
+ require *require.Assertions
}
func NewPartiallyInitializedThisConsumerImpl(assert *require.Assertions) *partiallyInitializedThisConsumerImpl {
@@ -1478,7 +1477,7 @@ func (suite *ComplianceSuite) TestPropertyOverrides_Set_Throws() {
}
type testPropertyOverrides_Set_ThrowsSyncVirtualMethods struct {
- calc.SyncVirtualMethods `overrides:"TheProperty"`
+ calc.SyncVirtualMethods
}
func NewTestPropertyOverrides_Set_ThrowsSyncVirtualMethods() *testPropertyOverrides_Set_ThrowsSyncVirtualMethods {
@@ -1582,7 +1581,7 @@ func (suite *ComplianceSuite) TestAsyncOverrides_OverrideCallsSuper() {
}
type OverrideCallsSuper struct {
- calc.AsyncVirtualMethods `overrides:"OverrideMe"`
+ calc.AsyncVirtualMethods
}
func (o *OverrideCallsSuper) OverrideMe(mult *float64) *float64 {
diff --git a/packages/@jsii/go-runtime-test/project/internal/overrideAsyncMethods/overrideAsyncMethods.go b/packages/@jsii/go-runtime-test/project/internal/overrideAsyncMethods/overrideAsyncMethods.go
index 8890e55050..a95a0d405c 100644
--- a/packages/@jsii/go-runtime-test/project/internal/overrideAsyncMethods/overrideAsyncMethods.go
+++ b/packages/@jsii/go-runtime-test/project/internal/overrideAsyncMethods/overrideAsyncMethods.go
@@ -6,7 +6,7 @@ import (
)
type OverrideAsyncMethods struct {
- jsiicalc.AsyncVirtualMethods `overrides:"OverrideMe"`
+ jsiicalc.AsyncVirtualMethods
}
func New() *OverrideAsyncMethods {
diff --git a/packages/@jsii/go-runtime-test/project/internal/syncOverrides/syncOverrides.go b/packages/@jsii/go-runtime-test/project/internal/syncOverrides/syncOverrides.go
index dc97ad7741..6b16d07ee3 100644
--- a/packages/@jsii/go-runtime-test/project/internal/syncOverrides/syncOverrides.go
+++ b/packages/@jsii/go-runtime-test/project/internal/syncOverrides/syncOverrides.go
@@ -7,11 +7,11 @@ import (
)
type SyncOverrides struct {
- jsiicalc.SyncVirtualMethods `overrides:"VirtualMethod,TheProperty"`
- AnotherTheProperty *string
- Multiplier int
- ReturnSuper bool
- CallAsync bool
+ jsiicalc.SyncVirtualMethods
+ AnotherTheProperty *string
+ Multiplier int
+ ReturnSuper bool
+ CallAsync bool
}
func New() *SyncOverrides {
diff --git a/packages/@jsii/go-runtime-test/project/internal/twoOverrides/twoOverrides.go b/packages/@jsii/go-runtime-test/project/internal/twoOverrides/twoOverrides.go
index 5a6847f45c..73a012f064 100644
--- a/packages/@jsii/go-runtime-test/project/internal/twoOverrides/twoOverrides.go
+++ b/packages/@jsii/go-runtime-test/project/internal/twoOverrides/twoOverrides.go
@@ -6,7 +6,7 @@ import (
)
type TwoOverrides struct {
- jsiicalc.AsyncVirtualMethods `overrides:"OverrideMe,OverrideMeToo"`
+ jsiicalc.AsyncVirtualMethods
}
func New() *TwoOverrides {
diff --git a/packages/@jsii/go-runtime-test/project/internal/wallClock/wallClock.go b/packages/@jsii/go-runtime-test/project/internal/wallClock/wallClock.go
index bf3f85ba16..5751782948 100644
--- a/packages/@jsii/go-runtime-test/project/internal/wallClock/wallClock.go
+++ b/packages/@jsii/go-runtime-test/project/internal/wallClock/wallClock.go
@@ -18,7 +18,7 @@ func (w *WallClock) Iso8601Now() *string {
}
type Entropy struct {
- jsiicalc.Entropy `overrides:"Repeat"`
+ jsiicalc.Entropy
}
func NewEntropy(clock jsiicalc.IWallClock) *Entropy {
diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/internal/embedded/.gitattributes b/packages/@jsii/go-runtime/jsii-runtime-go/internal/embedded/.gitattributes
new file mode 100644
index 0000000000..84ed02750e
--- /dev/null
+++ b/packages/@jsii/go-runtime/jsii-runtime-go/internal/embedded/.gitattributes
@@ -0,0 +1 @@
+resources/ linguist-vendored
diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/overrides_reflect_test.go b/packages/@jsii/go-runtime/jsii-runtime-go/overrides_reflect_test.go
new file mode 100644
index 0000000000..bfa1db7861
--- /dev/null
+++ b/packages/@jsii/go-runtime/jsii-runtime-go/overrides_reflect_test.go
@@ -0,0 +1,65 @@
+package jsii
+
+import (
+ "reflect"
+ "sort"
+ "testing"
+)
+
+type IFace interface {
+ M1()
+ M2()
+ M3()
+}
+
+type Base struct {
+ X, Y int
+}
+
+func (b *Base) M1() {}
+func (b *Base) M2() {}
+func (b *Base) M3() {}
+
+type D1 struct {
+ *Base
+}
+
+func (d *D1) M1() {}
+
+func (d *D1) X1() {}
+
+type D2 struct {
+ Name string
+ IFace
+}
+
+func (d *D2) M2() {}
+
+func (d *D2) X2() {}
+
+func TestOverrideReflection(t *testing.T) {
+ testCases := [...]struct {
+ //overriding instance
+ val interface{}
+ //instance overriding methods
+ methods []string
+ }{
+ {&Base{}, []string(nil)},
+ {&D1{&Base{}}, []string{"M1", "X1"}},
+ {&D2{Name: "abc", IFace: &D1{&Base{}}}, []string{"M1", "X1", "M2", "X2"}},
+ }
+ for _, tc := range testCases {
+ sort.Slice(tc.methods, func(i, j int) bool {
+ return tc.methods[i] < tc.methods[j]
+ })
+ }
+ for _, tc := range testCases {
+ methods := getMethodOverrides(tc.val, "Base")
+ sort.Slice(methods, func(i, j int) bool {
+ return methods[i] < methods[j]
+ })
+ if !reflect.DeepEqual(methods, tc.methods) {
+ t.Errorf("expect: %v, got: %v", tc.methods, methods)
+ }
+ }
+}
diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go b/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go
index 47f978d8a2..5eadf56461 100644
--- a/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go
+++ b/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go
@@ -113,8 +113,6 @@ func InitJsiiProxy(ptr interface{}) {
func Create(fqn FQN, args []interface{}, inst interface{}) {
client := kernel.GetClient()
- var overrides []api.Override
-
instVal := reflect.ValueOf(inst)
structVal := instVal.Elem()
instType := structVal.Type()
@@ -134,20 +132,6 @@ func Create(fqn FQN, args []interface{}, inst interface{}) {
panic(err)
}
- if tag := field.Tag.Get("overrides"); tag != "" {
- if names := strings.Split(tag, ","); len(names) > 0 {
- overrides = make([]api.Override, len(names))
- registry := client.Types()
- for i, name := range names {
- if override, ok := registry.GetOverride(api.FQN(fqn), name); !ok {
- panic(fmt.Errorf("unable to identify method or property for override %s declared by %v", name, field))
- } else {
- overrides[i] = override
- }
- }
- }
- }
-
case reflect.Struct:
fieldVal := structVal.Field(i)
if !fieldVal.IsZero() {
@@ -159,6 +143,36 @@ func Create(fqn FQN, args []interface{}, inst interface{}) {
}
}
+ // Find method overrides thru reflection
+ mOverrides := getMethodOverrides(inst, "jsiiProxy_")
+ // If overriding struct has no overriding methods, could happen if
+ // overriding methods are not defined with pointer receiver.
+ if len(mOverrides) == 0 && !strings.HasPrefix(instType.Name(), "jsiiProxy_") {
+ panic(fmt.Errorf("%s has no overriding methods. Overriding methods must be defined with a pointer receiver", instType.Name()))
+ }
+ var overrides []api.Override
+ registry := client.Types()
+ added := make(map[string]bool)
+ for _, name := range mOverrides {
+ // Use getter's name even if setter is overriden
+ if strings.HasPrefix(name, "Set") {
+ propName := name[3:]
+ if override, ok := registry.GetOverride(api.FQN(fqn), propName); ok {
+ if !added[propName] {
+ added[propName] = true
+ overrides = append(overrides, override)
+ }
+ continue
+ }
+ }
+ if override, ok := registry.GetOverride(api.FQN(fqn), name); ok {
+ if !added[name] {
+ added[name] = true
+ overrides = append(overrides, override)
+ }
+ }
+ }
+
interfaces, newOverrides := client.Types().DiscoverImplementation(instType)
overrides = append(overrides, newOverrides...)
@@ -361,6 +375,65 @@ func convertArguments(args []interface{}) []interface{} {
return result
}
+// Get ptr's methods names which override "base" struct methods.
+// The "base" struct is identified by name prefix "basePrefix".
+func getMethodOverrides(ptr interface{}, basePrefix string) (methods []string) {
+ // Methods override cache: [methodName]bool
+ mCache := make(map[string]bool)
+ getMethodOverridesRec(ptr, basePrefix, mCache)
+ // Return overriden methods names in embedding hierarchy
+ for m, _ := range mCache {
+ methods = append(methods, m)
+ }
+ return
+}
+
+func getMethodOverridesRec(ptr interface{}, basePrefix string, cache map[string]bool) {
+ ptrType := reflect.TypeOf(ptr)
+ if ptrType.Kind() != reflect.Ptr {
+ return
+ }
+ structType := ptrType.Elem()
+ if structType.Kind() != reflect.Struct {
+ return
+ }
+ if strings.HasPrefix(structType.Name(), basePrefix) {
+ // Skip base class
+ return
+ }
+
+ ptrVal := reflect.ValueOf(ptr)
+ structVal := ptrVal.Elem()
+
+ // Add embedded/super overrides first
+ for i := 0; i < structType.NumField(); i++ {
+ field := structType.Field(i)
+ if !field.Anonymous {
+ continue
+ }
+ if field.Type.Kind() == reflect.Ptr ||
+ field.Type.Kind() == reflect.Interface {
+ p := structVal.Field(i)
+ if !p.IsNil() {
+ getMethodOverridesRec(p.Interface(), basePrefix, cache)
+ }
+ }
+ }
+ // Add overrides in current struct
+ // Current struct's value-type method-set
+ valMethods := make(map[string]bool)
+ for i := 0; i < structType.NumMethod(); i++ {
+ valMethods[structType.Method(i).Name] = true
+ }
+ // Compare current struct's pointer-type method-set to its value-type method-set
+ for i := 0; i < ptrType.NumMethod(); i++ {
+ mn := ptrType.Method(i).Name
+ if !valMethods[mn] {
+ cache[mn] = true
+ }
+ }
+}
+
// Close finalizes the runtime process, signalling the end of the execution to
// the jsii kernel process, and waiting for graceful termination. The best
// practice is to defer call thins at the beginning of the "main" function.
diff --git a/packages/@jsii/python-runtime/requirements.txt b/packages/@jsii/python-runtime/requirements.txt
index 2fce16da48..7492f7afed 100644
--- a/packages/@jsii/python-runtime/requirements.txt
+++ b/packages/@jsii/python-runtime/requirements.txt
@@ -3,7 +3,7 @@ mypy==0.812
pip~=21.0
pytest~=6.2
pytest-mypy~=0.8
-setuptools~=54.2
+setuptools~=56.0
wheel~=0.36
-e .
diff --git a/packages/@jsii/runtime/package.json b/packages/@jsii/runtime/package.json
index b6469c57d7..7b8d9cdf5d 100644
--- a/packages/@jsii/runtime/package.json
+++ b/packages/@jsii/runtime/package.json
@@ -50,7 +50,7 @@
"source-map-loader": "^2.0.1",
"ts-jest": "^26.5.4",
"typescript": "~3.9.9",
- "webpack": "^5.28.0",
+ "webpack": "^5.30.0",
"webpack-cli": "^4.6.0"
}
}
diff --git a/packages/jsii-pacmak/lib/targets/go.ts b/packages/jsii-pacmak/lib/targets/go.ts
index 5d77d191be..478a9e81ef 100644
--- a/packages/jsii-pacmak/lib/targets/go.ts
+++ b/packages/jsii-pacmak/lib/targets/go.ts
@@ -43,17 +43,20 @@ export class Golang extends Target {
try {
// run `go build` with local.go.mod, go 1.16 requires that we download
// modules explicit so go.sum is updated.
- await go('mod', ['download', '-modfile', localGoMod], { cwd: pkgDir });
+ await go('mod', ['download', '-modfile', localGoMod.path], {
+ cwd: pkgDir,
+ });
} catch (e) {
- const content = await fs.readFile(localGoMod, 'utf8');
- logging.info(`Content of ${localGoMod} file:\n${content}`);
+ logging.info(
+ `[${pkgDir}] Content of ${localGoMod.path} file:\n${localGoMod.content}`,
+ );
return Promise.reject(e);
}
- await go('build', ['-modfile', localGoMod, './...'], { cwd: pkgDir });
+ await go('build', ['-modfile', localGoMod.path, './...'], { cwd: pkgDir });
// delete local.go.mod and local.go.sum from the output directory so it doesn't get published
- const localGoSum = `${path.basename(localGoMod, '.mod')}.sum`;
- await fs.remove(path.join(pkgDir, localGoMod));
+ const localGoSum = `${path.basename(localGoMod.path, '.mod')}.sum`;
+ await fs.remove(path.join(pkgDir, localGoMod.path));
return fs.remove(path.join(pkgDir, localGoSum));
}
@@ -110,16 +113,19 @@ export class Golang extends Target {
// read existing content
const goMod = path.join(pkgDir, GOMOD_FILENAME);
- const lines = (await fs.readFile(goMod, 'utf-8')).split('\n');
+ const lines = [await fs.readFile(goMod, 'utf-8'), '', '// Local packages:'];
for (const [from, to] of Object.entries(replace)) {
- logging.info(`Local replace: ${from} => ${to}`);
+ logging.info(`[${pkgDir}] Local replace: ${from} => ${to}`);
lines.push(`replace ${from} => ${to}`);
}
const localGoMod = `local.${GOMOD_FILENAME}`;
- await fs.writeFile(path.join(pkgDir, localGoMod), lines.join('\n'));
- return localGoMod;
+ const content = lines.join('\n');
+ await fs.writeFile(path.join(pkgDir, localGoMod), content, {
+ encoding: 'utf-8',
+ });
+ return { path: localGoMod, content };
}
}
diff --git a/packages/jsii-pacmak/lib/targets/python/requirements-dev.txt b/packages/jsii-pacmak/lib/targets/python/requirements-dev.txt
index b5d704e37b..044b0fdf35 100644
--- a/packages/jsii-pacmak/lib/targets/python/requirements-dev.txt
+++ b/packages/jsii-pacmak/lib/targets/python/requirements-dev.txt
@@ -3,7 +3,7 @@
# be installed in the virtual environment used for building the distribution
# package (wheel, sdist), but not declared as build-system dependencies.
-setuptools~=54.1.2 # build-system
+setuptools~=56.0.0 # build-system
wheel~=0.36.2 # build-system
twine~=3.4.1
diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.ts.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.ts.snap
index b291f330f8..9a240d6f85 100644
--- a/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.ts.snap
+++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.ts.snap
@@ -1147,7 +1147,7 @@ testpkg.FooBar=example.test.demo.FooBar
exports[`diamond-struct-parameter.ts: /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -2447,7 +2447,7 @@ testpkg.Namespace2.Foo.Final=example.test.demo.Namespace2$Foo.Final
exports[`nested-types.ts: /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.ts.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.ts.snap
index d949ab5da1..bdcfb16e5b 100644
--- a/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.ts.snap
+++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.ts.snap
@@ -416,7 +416,7 @@ foo
exports[`foo@1.2.3 depends on bar@^2.0.0-rc.42: /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -925,7 +925,7 @@ foo
exports[`foo@1.2.3 depends on bar@^4.5.6-pre.1337: /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -1414,7 +1414,7 @@ foo
exports[`foo@2.0.0-rc.42: /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -1900,7 +1900,7 @@ foo
exports[`foo@4.5.6-pre.1337: /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap
index 6ee91b0691..0612a6732c 100644
--- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap
+++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap
@@ -243,7 +243,7 @@ scope.jsii-calc-base
exports[`Generated code for "@scope/jsii-calc-base": /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -725,7 +725,7 @@ scope.jsii-calc-base-of-base
exports[`Generated code for "@scope/jsii-calc-base-of-base": /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -1179,7 +1179,7 @@ scope.jsii-calc-lib
exports[`Generated code for "@scope/jsii-calc-lib": /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
@@ -2408,7 +2408,7 @@ foo = "bar"
exports[`Generated code for "jsii-calc": /python/pyproject.toml 1`] = `
[build-system]
-requires = ["setuptools~=54.1.2", "wheel~=0.36.2"]
+requires = ["setuptools~=56.0.0", "wheel~=0.36.2"]
build-backend = "setuptools.build_meta"
`;
diff --git a/packages/jsii/lib/transforms/deprecated-remover.ts b/packages/jsii/lib/transforms/deprecated-remover.ts
index b3f14649ef..82bf54f36a 100644
--- a/packages/jsii/lib/transforms/deprecated-remover.ts
+++ b/packages/jsii/lib/transforms/deprecated-remover.ts
@@ -591,7 +591,11 @@ class Transformation {
const symbol = typeChecker.getSymbolAtLocation(
ts.getNameOfDeclaration(node as ts.Declaration) ?? node,
);
- return symbol && typeChecker.getFullyQualifiedName(symbol);
+ // This symbol βοΈ does not contain enough information in some cases - when
+ // an imported type is part of a heritage clause - to produce the fqn.
+ // Round tripping this to its type and back to a symbol seems to fix this.
+ const type = symbol && typeChecker.getDeclaredTypeOfSymbol(symbol);
+ return type?.symbol && typeChecker.getFullyQualifiedName(type.symbol);
}
private static typeReference(
diff --git a/packages/jsii/test/deprecated-remover.test.ts b/packages/jsii/test/deprecated-remover.test.ts
index 109509daf2..3ba3990175 100644
--- a/packages/jsii/test/deprecated-remover.test.ts
+++ b/packages/jsii/test/deprecated-remover.test.ts
@@ -1,4 +1,4 @@
-import { compileJsiiForTest } from '../lib';
+import { compileJsiiForTest, HelperCompilationResult } from '../lib';
const DEPRECATED = '/** @deprecated stripped */';
@@ -114,15 +114,7 @@ test('produces correct output', async () => {
},
}
`);
- expect(
- Object.entries(result.files)
- .filter(([name]) => name.endsWith('.d.ts'))
- .map(([name, content]) => {
- const separator = '/'.repeat(name.length + 8);
- return `${separator}\n/// ${name} ///\n${content}${separator}\n`;
- })
- .join('\n\n'),
- ).toMatchInlineSnapshot(`
+ expect(declFilesSnapshot(result)).toMatchInlineSnapshot(`
"//////////////////
/// index.d.ts ///
import './deprecated';
@@ -159,3 +151,47 @@ test('produces correct output', async () => {
"
`);
});
+
+test('cross-file deprecated heritage', async () => {
+ const result = await compileJsiiForTest(
+ {
+ 'index.ts': `
+ import { IDeprecated } from './deprecated';
+ export * from './deprecated';
+ export interface INotDeprecated extends IDeprecated {}
+ `,
+ 'deprecated.ts': `
+ ${DEPRECATED}
+ export interface IDeprecated {}
+ `,
+ },
+ undefined /* callback */,
+ { stripDeprecated: true },
+ );
+
+ expect(declFilesSnapshot(result)).toMatchInlineSnapshot(`
+ "//////////////////
+ /// index.d.ts ///
+ import './deprecated';
+ import './deprecated';
+ export interface INotDeprecated {
+ }
+ //////////////////
+
+
+ ///////////////////////
+ /// deprecated.d.ts ///
+ ///////////////////////
+ "
+ `);
+});
+
+function declFilesSnapshot(result: HelperCompilationResult) {
+ return Object.entries(result.files)
+ .filter(([name]) => name.endsWith('.d.ts'))
+ .map(([name, content]) => {
+ const separator = '/'.repeat(name.length + 8);
+ return `${separator}\n/// ${name} ///\n${content}${separator}\n`;
+ })
+ .join('\n\n');
+}
diff --git a/yarn.lock b/yarn.lock
index 58705523f0..88184be3ab 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1279,9 +1279,9 @@
"@octokit/types" "^6.0.3"
"@octokit/core@^3.2.3":
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.3.2.tgz#128377d0e05d8b548b26fc6622570220b103bc69"
- integrity sha512-Jx83n4tuX/z7QtxnPsAKxXPzH3vANtKmlCB3W3vt18JbkEaBYm+C8dgAlA1FNtqNk3L21pxsKNbWkUQAhiV7ng==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.4.0.tgz#b48aa27d755b339fe7550548b340dcc2b513b742"
+ integrity sha512-6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==
dependencies:
"@octokit/auth-token" "^2.4.4"
"@octokit/graphql" "^4.5.8"
@@ -1653,13 +1653,13 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@^4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.20.0.tgz#9d8794bd99aad9153092ad13c96164e3082e9a92"
- integrity sha512-sw+3HO5aehYqn5w177z2D82ZQlqHCwcKSMboueo7oE4KU9QiC0SAgfS/D4z9xXvpTc8Bt41Raa9fBR8T2tIhoQ==
+"@typescript-eslint/eslint-plugin@^4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.21.0.tgz#3fce2bfa76d95c00ac4f33dff369cb593aab8878"
+ integrity sha512-FPUyCPKZbVGexmbCFI3EQHzCZdy2/5f+jv6k2EDljGdXSRc0cKvbndd2nHZkSLqCNOPk0jB6lGzwIkglXcYVsQ==
dependencies:
- "@typescript-eslint/experimental-utils" "4.20.0"
- "@typescript-eslint/scope-manager" "4.20.0"
+ "@typescript-eslint/experimental-utils" "4.21.0"
+ "@typescript-eslint/scope-manager" "4.21.0"
debug "^4.1.1"
functional-red-black-tree "^1.0.1"
lodash "^4.17.15"
@@ -1667,60 +1667,60 @@
semver "^7.3.2"
tsutils "^3.17.1"
-"@typescript-eslint/experimental-utils@4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.20.0.tgz#a8ab2d7b61924f99042b7d77372996d5f41dc44b"
- integrity sha512-sQNlf6rjLq2yB5lELl3gOE7OuoA/6IVXJUJ+Vs7emrQMva14CkOwyQwD7CW+TkmOJ4Q/YGmoDLmbfFrpGmbKng==
+"@typescript-eslint/experimental-utils@4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.21.0.tgz#0b0bb7c15d379140a660c003bdbafa71ae9134b6"
+ integrity sha512-cEbgosW/tUFvKmkg3cU7LBoZhvUs+ZPVM9alb25XvR0dal4qHL3SiUqHNrzoWSxaXA9gsifrYrS1xdDV6w/gIA==
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/scope-manager" "4.20.0"
- "@typescript-eslint/types" "4.20.0"
- "@typescript-eslint/typescript-estree" "4.20.0"
+ "@typescript-eslint/scope-manager" "4.21.0"
+ "@typescript-eslint/types" "4.21.0"
+ "@typescript-eslint/typescript-estree" "4.21.0"
eslint-scope "^5.0.0"
eslint-utils "^2.0.0"
-"@typescript-eslint/parser@^4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.20.0.tgz#8dd403c8b4258b99194972d9799e201b8d083bdd"
- integrity sha512-m6vDtgL9EABdjMtKVw5rr6DdeMCH3OA1vFb0dAyuZSa3e5yw1YRzlwFnm9knma9Lz6b2GPvoNSa8vOXrqsaglA==
+"@typescript-eslint/parser@^4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.21.0.tgz#a227fc2af4001668c3e3f7415d4feee5093894c1"
+ integrity sha512-eyNf7QmE5O/l1smaQgN0Lj2M/1jOuNg2NrBm1dqqQN0sVngTLyw8tdCbih96ixlhbF1oINoN8fDCyEH9SjLeIA==
dependencies:
- "@typescript-eslint/scope-manager" "4.20.0"
- "@typescript-eslint/types" "4.20.0"
- "@typescript-eslint/typescript-estree" "4.20.0"
+ "@typescript-eslint/scope-manager" "4.21.0"
+ "@typescript-eslint/types" "4.21.0"
+ "@typescript-eslint/typescript-estree" "4.21.0"
debug "^4.1.1"
-"@typescript-eslint/scope-manager@4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.20.0.tgz#953ecbf3b00845ece7be66246608be9d126d05ca"
- integrity sha512-/zm6WR6iclD5HhGpcwl/GOYDTzrTHmvf8LLLkwKqqPKG6+KZt/CfSgPCiybshmck66M2L5fWSF/MKNuCwtKQSQ==
+"@typescript-eslint/scope-manager@4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.21.0.tgz#c81b661c4b8af1ec0c010d847a8f9ab76ab95b4d"
+ integrity sha512-kfOjF0w1Ix7+a5T1knOw00f7uAP9Gx44+OEsNQi0PvvTPLYeXJlsCJ4tYnDj5PQEYfpcgOH5yBlw7K+UEI9Agw==
dependencies:
- "@typescript-eslint/types" "4.20.0"
- "@typescript-eslint/visitor-keys" "4.20.0"
+ "@typescript-eslint/types" "4.21.0"
+ "@typescript-eslint/visitor-keys" "4.21.0"
-"@typescript-eslint/types@4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.20.0.tgz#c6cf5ef3c9b1c8f699a9bbdafb7a1da1ca781225"
- integrity sha512-cYY+1PIjei1nk49JAPnH1VEnu7OYdWRdJhYI5wiKOUMhLTG1qsx5cQxCUTuwWCmQoyriadz3Ni8HZmGSofeC+w==
+"@typescript-eslint/types@4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.21.0.tgz#abdc3463bda5d31156984fa5bc316789c960edef"
+ integrity sha512-+OQaupjGVVc8iXbt6M1oZMwyKQNehAfLYJJ3SdvnofK2qcjfor9pEM62rVjBknhowTkh+2HF+/KdRAc/wGBN2w==
-"@typescript-eslint/typescript-estree@4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.20.0.tgz#8b3b08f85f18a8da5d88f65cb400f013e88ab7be"
- integrity sha512-Knpp0reOd4ZsyoEJdW8i/sK3mtZ47Ls7ZHvD8WVABNx5Xnn7KhenMTRGegoyMTx6TiXlOVgMz9r0pDgXTEEIHA==
+"@typescript-eslint/typescript-estree@4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.21.0.tgz#3817bd91857beeaeff90f69f1f112ea58d350b0a"
+ integrity sha512-ZD3M7yLaVGVYLw4nkkoGKumb7Rog7QID9YOWobFDMQKNl+vPxqVIW/uDk+MDeGc+OHcoG2nJ2HphwiPNajKw3w==
dependencies:
- "@typescript-eslint/types" "4.20.0"
- "@typescript-eslint/visitor-keys" "4.20.0"
+ "@typescript-eslint/types" "4.21.0"
+ "@typescript-eslint/visitor-keys" "4.21.0"
debug "^4.1.1"
globby "^11.0.1"
is-glob "^4.0.1"
semver "^7.3.2"
tsutils "^3.17.1"
-"@typescript-eslint/visitor-keys@4.20.0":
- version "4.20.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.20.0.tgz#1e84db034da13f208325e6bfc995c3b75f7dbd62"
- integrity sha512-NXKRM3oOVQL8yNFDNCZuieRIwZ5UtjNLYtmMx2PacEAGmbaEYtGgVHUHVyZvU/0rYZcizdrWjDo+WBtRPSgq+A==
+"@typescript-eslint/visitor-keys@4.21.0":
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.21.0.tgz#990a9acdc124331f5863c2cf21c88ba65233cd8d"
+ integrity sha512-dH22dROWGi5Z6p+Igc8bLVLmwy7vEe8r+8c+raPQU0LxgogPUrRAtRGtvBWmlr9waTu3n+QLt/qrS/hWzk1x5w==
dependencies:
- "@typescript-eslint/types" "4.20.0"
+ "@typescript-eslint/types" "4.21.0"
eslint-visitor-keys "^2.0.0"
"@webassemblyjs/ast@1.11.0":
@@ -1962,9 +1962,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
uri-js "^4.2.2"
ajv@^8.0.1:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.0.2.tgz#1396e27f208ed56dd5638ab5a251edeb1c91d402"
- integrity sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==
+ version "8.0.5"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.0.5.tgz#f07d6fdeffcdbb80485570ce3f1bc845fcc812b9"
+ integrity sha512-RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
@@ -2037,9 +2037,9 @@ anymatch@^2.0.0:
normalize-path "^2.1.1"
anymatch@^3.0.3:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
- integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
@@ -2275,9 +2275,9 @@ babel-preset-jest@^26.6.2:
babel-preset-current-node-syntax "^1.0.0"
balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
- integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base@^0.11.1:
version "0.11.2"
@@ -2300,9 +2300,9 @@ bcrypt-pbkdf@^1.0.0:
tweetnacl "^0.14.3"
before-after-hook@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.0.tgz#09c40d92e936c64777aa385c4e9b904f8147eaf0"
- integrity sha512-jH6rKQIfroBbhEXVmI7XmXe3ix5S/PgJqpzdDPnR8JGLHWNYLsYZ6tK5iWOF/Ra3oqEX0NobXGlzbiylIzVphQ==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.1.tgz#73540563558687586b52ed217dad6a802ab1549c"
+ integrity sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==
brace-expansion@^1.1.7:
version "1.1.11"
@@ -2469,9 +2469,9 @@ camelcase@^6.0.0, camelcase@^6.2.0:
integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
caniuse-lite@^1.0.30001181:
- version "1.0.30001205"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001205.tgz#d79bf6a6fb13196b4bb46e5143a22ca0242e0ef8"
- integrity sha512-TL1GrS5V6LElbitPazidkBMD9sa448bQDDLrumDqaggmKFcuU2JW1wTOHJPukAcOMtEmLcmDJEzfRrf+GjM0Og==
+ version "1.0.30001207"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz#364d47d35a3007e528f69adb6fecb07c2bb2cc50"
+ integrity sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==
capture-exit@^2.0.0:
version "2.0.0"
@@ -3289,9 +3289,9 @@ ecc-jsbn@~0.1.1:
safer-buffer "^2.1.0"
electron-to-chromium@^1.3.649:
- version "1.3.703"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.703.tgz#6d9b9a75c42a40775f5930329e642b22b227317f"
- integrity sha512-SVBVhNB+4zPL+rvtWLw7PZQkw/Eqj1HQZs22xtcqW36+xoifzEOEEDEpkxSMfB6RFeSIOcG00w6z5mSqLr1Y6w==
+ version "1.3.709"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.709.tgz#d7be0b5686a2fdfe8bad898faa3a428d04d8f656"
+ integrity sha512-LolItk2/ikSGQ7SN8UkuKVNMBZp3RG7Itgaxj1npsHRzQobj9JjMneZOZfLhtwlYBe5fCJ75k+cVCiDFUs23oA==
emittery@^0.7.1:
version "0.7.2"
@@ -3343,9 +3343,9 @@ env-paths@^2.2.0:
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
envinfo@^7.7.3, envinfo@^7.7.4:
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320"
- integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
+ integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
err-code@^2.0.2:
version "2.0.3"
@@ -4594,9 +4594,9 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
kind-of "^6.0.2"
is-docker@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
- integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.0.tgz#b037c8815281edaad6c2562648a5f5f18839d5f7"
+ integrity sha512-K4GwB4i/HzhAzwP/XSlspzRdFTI9N8OxJOyOU7Y5Rz+p+WBokXWVWblaJeBkggthmoSV0OoGTH5thJNvplpkvQ==
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
@@ -4709,9 +4709,9 @@ is-plain-object@^5.0.0:
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
is-potential-custom-element-name@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
- integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+ integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
is-regex@^1.1.1, is-regex@^1.1.2:
version "1.1.2"
@@ -5760,9 +5760,9 @@ map-obj@^1.0.0, map-obj@^1.0.1:
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
map-obj@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.0.tgz#0e8bc823e2aaca8a0942567d12ed14f389eec153"
- integrity sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
+ integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
map-visit@^1.0.0:
version "1.0.0"
@@ -5853,17 +5853,17 @@ micromatch@^4.0.2:
braces "^3.0.1"
picomatch "^2.0.5"
-mime-db@1.46.0:
- version "1.46.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
- integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
+mime-db@1.47.0:
+ version "1.47.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+ integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19:
- version "2.1.29"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
- integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
+ version "2.1.30"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+ integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
dependencies:
- mime-db "1.46.0"
+ mime-db "1.47.0"
mimic-fn@^2.1.0:
version "2.1.0"
@@ -6849,9 +6849,9 @@ promise-retry@^2.0.1:
retry "^0.12.0"
prompts@^2.0.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7"
- integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
+ integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==
dependencies:
kleur "^3.0.3"
sisteransi "^1.0.5"
@@ -7754,10 +7754,10 @@ stack-utils@^2.0.2:
dependencies:
escape-string-regexp "^2.0.0"
-standard-version@^9.1.1:
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.1.1.tgz#7561df6351b075a44544ce3d3ebcffcb9582ba5a"
- integrity sha512-PF9JnRauBwH7DAkmefYu1mB2Kx0MVG13udqDTFmDUiogbyikBAHBdMrVuauxtAb2YIkyZ3FMYCNv0hqUKMOPww==
+standard-version@^9.2.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.2.0.tgz#d4e64b201ec1abb8a677b265d8755e5e8b9e33a3"
+ integrity sha512-utJcqjk/wR4sePSwDoRcc5CzJ6S+kec5Hd0+1TJI+j1TRYuuptweAnEUdkkjGf2vYoGab2ezefyVtW065HZ1Uw==
dependencies:
chalk "^2.4.2"
conventional-changelog "3.1.24"
@@ -7972,9 +7972,9 @@ supports-color@^7.0.0, supports-color@^7.1.0:
has-flag "^4.0.0"
supports-hyperlinks@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
- integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
+ integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
dependencies:
has-flag "^4.0.0"
supports-color "^7.0.0"
@@ -8608,10 +8608,10 @@ webpack-sources@^2.1.1:
source-list-map "^2.0.1"
source-map "^0.6.1"
-webpack@^5.28.0:
- version "5.28.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.28.0.tgz#0de8bcd706186b26da09d4d1e8cbd3e4025a7c2f"
- integrity sha512-1xllYVmA4dIvRjHzwELgW4KjIU1fW4PEuEnjsylz7k7H5HgPOctIq7W1jrt3sKH9yG5d72//XWzsHhfoWvsQVg==
+webpack@^5.30.0:
+ version "5.30.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.30.0.tgz#07d87c182a060e0c2491062f3dc0edc85a29d884"
+ integrity sha512-Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA==
dependencies:
"@types/eslint-scope" "^3.7.0"
"@types/estree" "^0.0.46"
@@ -8839,14 +8839,14 @@ xtend@~4.0.1:
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
- integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.2.tgz#c504495ba9b59230dd60226d1dd89c3c0a1b745e"
+ integrity sha512-DnBDwcL54b5xWMM/7RfFg4xs5amYxq2ot49aUfLjQSAracXkGvlZq0txzqr3Pa6Q0ayuCxBcwTzrPUScKY0O8w==
y18n@^5.0.5:
- version "5.0.5"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18"
- integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.7.tgz#0c514aba53fc40e2db911aeb8b51566a3374efe7"
+ integrity sha512-oOhslryvNcA1lB9WYr+M6TMyLkLg81Dgmyb48ZDU0lvR+5bmNDTMz7iobM1QXooaLhbbrcHrlNaABhI6Vo6StQ==
yallist@^3.0.0, yallist@^3.0.3:
version "3.1.1"