diff --git a/.all-contributorsrc b/.all-contributorsrc index fc2817df60..7dcd0d9258 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1272,7 +1272,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/66279577?v=4", "profile": "https://github.com/comcalvi", "contributions": [ - "code" + "code", + "review" ] }, { @@ -1428,6 +1429,43 @@ "contributions": [ "bug" ] + }, + { + "login": "DanielMSchmidt", + "name": "Daniel Schmidt", + "avatar_url": "https://avatars.githubusercontent.com/u/1337046?v=4", + "profile": "http://danielmschmidt.de/", + "contributions": [ + "bug", + "code" + ] + }, + { + "login": "kaizencc", + "name": "Kaizen Conroy", + "avatar_url": "https://avatars.githubusercontent.com/u/36202692?v=4", + "profile": "https://github.com/kaizencc", + "contributions": [ + "code" + ] + }, + { + "login": "Naumel", + "name": "Naumel", + "avatar_url": "https://avatars.githubusercontent.com/u/104374999?v=4", + "profile": "https://github.com/Naumel", + "contributions": [ + "review" + ] + }, + { + "login": "cn-cit", + "name": "cn-cit", + "avatar_url": "https://avatars.githubusercontent.com/u/27255477?v=4", + "profile": "https://github.com/cn-cit", + "contributions": [ + "bug" + ] } ], "repoType": "github", diff --git a/CHANGELOG.md b/CHANGELOG.md index dac0032934..1663a8ec91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ 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.68.0](https://github.com/aws/jsii/compare/v1.67.0...v1.68.0) (2022-09-22) + + +### Features + +* **kernel:** distinguish framework errors from userland errors in Java ([#3747](https://github.com/aws/jsii/issues/3747)) ([a4d39c6](https://github.com/aws/jsii/commit/a4d39c6fb619cd4d7c9103ec70a731ab6fb23374)) + + +### Bug Fixes + +* **jsii:** unable to return Promise ([#3752](https://github.com/aws/jsii/issues/3752)) ([852b3dc](https://github.com/aws/jsii/commit/852b3dc5da113546bc090d99f9250104f526f5af)), closes [#51](https://github.com/aws/jsii/issues/51) +* **pacmak:** .NET bindings fail to compile with error CS8120 ([#3760](https://github.com/aws/jsii/issues/3760)) ([783ec7f](https://github.com/aws/jsii/commit/783ec7f1d40619677f34318ee247244b682cd92d)), closes [#3759](https://github.com/aws/jsii/issues/3759) +* **runtime:** type not found ([#3763](https://github.com/aws/jsii/issues/3763)) ([c7dfad3](https://github.com/aws/jsii/commit/c7dfad3ec905a5ee795be1d313d9c078ab3b4234)), closes [#3742](https://github.com/aws/jsii/issues/3742) + ## [1.67.0](https://github.com/aws/jsii/compare/v1.66.0...v1.67.0) (2022-09-02) diff --git a/README.md b/README.md index ddde39ead0..5fcd7d82f0 100644 --- a/README.md +++ b/README.md @@ -54,193 +54,201 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

AWS CDK Automation

🚧 πŸ‘€

Aaron Costley

πŸ› πŸ’» πŸ€” πŸ‘€

Abdallah Hodieb

πŸ›

Adam Ruka

πŸ› πŸ’» 🚧 πŸ‘€

Adrian Dimech

πŸ’»

Alex Pulver

πŸ›

Andrew Wason

πŸ› πŸ’»

Andy Slezak

πŸ’»

Ansgar Mertens

🚧 πŸ’» πŸ›

Anshul Guleria

πŸ€”

Ari Palo

πŸ€”

Armaan Tobaccowalla

πŸ›

BartΕ‚omiej Jurek

πŸ›

Ben Bridts

πŸ“–

Ben Chaimberg

πŸ“–

Ben Farr

πŸ“–

Ben Walters

πŸ€”

Benjamin Macher

πŸ“–

Benjamin Maizels

πŸ’» πŸ‘€

Bill Cauchois

πŸ€”

Brecht Verhoeve

πŸ€”

Breland Miley

πŸ’»

CaerusKaru

πŸ’» 🚧

Calvin Combs

πŸ’»

Camilo BermΓΊdez

πŸ›

Campion Fellin

πŸ’»

Carter Van Deuren

πŸ›

Chris Garvis

πŸ“–

Christophe Vico

πŸ›

Christopher Currie

πŸ’» πŸ€”

Christopher Rybicki

πŸ“–

CommanderRoot

πŸ’»

Cory Hall

πŸ›

Cristian Măgherușan-Stanciu

πŸ›

CyrusNajmabadi

πŸ› πŸ€”

Damian Silbergleith

πŸ’» πŸ›

Daniel Dinu

πŸ› πŸ’»

Daniel Schroeder

πŸ› πŸ’» πŸ“– πŸ€” 🚧

Dave Slotnick

πŸ›

Donald Stufft

πŸ› πŸ’» πŸ€” πŸ‘€

Dongie Agnir

πŸ’» πŸ‘€

Eduardo Rabelo

πŸ“–

Eduardo Sena S. Rosa

πŸ›

Elad Ben-Israel

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€ πŸ“’

Eli Polonsky

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Eric Z. Beard

πŸ“†

Erik Karlsson

πŸ›

Eugene Kozlov

πŸ’»

Fabio Gentile

πŸ›

Florian Eitel

πŸ€”

Glib Shpychka

πŸ›

Graham Lea

πŸ€” πŸ‘€

Hamza Assyad

πŸ› πŸ’» πŸ€” πŸ‘€

Hari Pachuveetil

πŸ“ πŸ“–

Hsing-Hui Hsu

πŸ’» πŸ“– πŸ€” πŸ‘€

Ikko Ashimine

πŸ“–

James

πŸ› πŸ’»

James Kelley

πŸ›

James Mead

πŸ’»

James Siri

πŸ’» 🚧

Jason Del Ponte

πŸ€” πŸ‘€

Jason Fulghum

πŸ€” πŸ“† πŸ‘€

Jerry Kindall

πŸ“– πŸ€”

Jimmy Gaussen

πŸ€”

Johannes Weber

πŸ“–

Jon Steinich

πŸ› πŸ€” πŸ’»

Joseph Lawson

πŸ‘€

Joseph Martin

πŸ›

Junix

πŸ›

Justin Frahm

πŸ›

Justin Taylor

πŸ›

Kaizen Conroy

πŸ’» πŸ›

Kaushik Borra

πŸ›

Kyle Thomson

πŸ’» πŸ‘€

Leandro Padua

πŸ›

Liang Zhou

πŸ› πŸ’»

Madeline Kusters

πŸ’» πŸ›

Maja S Bratseth

πŸ›

Marcos Diez

πŸ›

Mark Nielsen

πŸ’»

Matthew Bonig

πŸ› πŸ“

Matthew Pirocchi

πŸ’» πŸ€” πŸ‘€

Meng Xin Zhu

πŸ›

Michael Neil

🚧

Mike Lane

πŸ›

Mitch Garnaat

πŸ› πŸ’» πŸ€” πŸ‘€

Mitchell Valine

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Mohamad Soufan

πŸ“–

Mykola Mogylenko

πŸ›

Neta Nir

πŸ’» πŸ€” 🚧 πŸ‘€

Nick Lynch

πŸ› πŸ’» 🚧 πŸ‘€

Niranjan Jayakar

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Noah Litov

πŸ’» 🚧 πŸ‘€

Otavio Macedo

πŸ’» πŸ›

PIDZ - Bart

πŸ€”

Peter Woodworth

🚧

Petr Kacer

πŸ›

Petra Barus

πŸ’»

Philip Cali

πŸ€”

Quentin Loos

πŸ€”

Raphael

πŸ›

Richard H Boyd

πŸ›

Rico Huijbers

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Romain Marcadier

πŸ› πŸ’» 🎨 πŸ€” 🚧 πŸ‘€ πŸ“

SADIK KUZU

πŸ‘€

SK

πŸ€”

Sam Fink

πŸ’» πŸ‘€

Sam Goodwin

πŸ‘€

Sebastian Korfmann

πŸ› πŸ’» πŸ€”

Sepehr Laal

πŸ›

Shane Witbeck

πŸ€”

Shiv Lakshminarayan

πŸ’» 🚧 πŸ‘€

Somaya

πŸ’» πŸ€” 🚧 πŸ‘€

Stephen Kuenzli

πŸ“–

Takahiro Sugiura

πŸ“–

The Gitter Badger

πŸ’» 🚧

Thomas Poignant

πŸ›

Thomas Steinbach

πŸ›

Thorsten Hoeger

πŸ’»

Tim Wagner

πŸ› πŸ€”

Tobias Lidskog

πŸ’»

Ty Coghlan

πŸ›

Tyler van Hensbergen

πŸ€”

Vlad Hrybok

πŸ›

Vladimir Shchur

πŸ›

Yan Zhulanow

πŸ’»

Yigong Liu

πŸ› πŸ€”

Zach Bienenfeld

πŸ›

ajnarang

πŸ€”

aniljava

πŸ’»

arnogeurts-sqills

πŸ› πŸ’»

deccy-mcc

πŸ›

dependabot-preview[bot]

πŸ› 🚧

dependabot[bot]

🚧

dheffx

πŸ›

gregswdl

πŸ›

guyroberts21

πŸ“–

mattBrzezinski

πŸ“–

mergify

🚧

mergify[bot]

🚧

nathannaveen

🚧

seiyashima42

πŸ› πŸ’» πŸ“–

sullis

πŸ’»

vaneek

πŸ›

wendysophie

πŸ›

AWS CDK Automation

🚧 πŸ‘€

Aaron Costley

πŸ› πŸ’» πŸ€” πŸ‘€

Abdallah Hodieb

πŸ›

Adam Ruka

πŸ› πŸ’» 🚧 πŸ‘€

Adrian Dimech

πŸ’»

Alex Pulver

πŸ›

Andrew Wason

πŸ› πŸ’»

Andy Slezak

πŸ’»

Ansgar Mertens

🚧 πŸ’» πŸ›

Anshul Guleria

πŸ€”

Ari Palo

πŸ€”

Armaan Tobaccowalla

πŸ›

BartΕ‚omiej Jurek

πŸ›

Ben Bridts

πŸ“–

Ben Chaimberg

πŸ“–

Ben Farr

πŸ“–

Ben Walters

πŸ€”

Benjamin Macher

πŸ“–

Benjamin Maizels

πŸ’» πŸ‘€

Bill Cauchois

πŸ€”

Brecht Verhoeve

πŸ€”

Breland Miley

πŸ’»

CaerusKaru

πŸ’» 🚧

Calvin Combs

πŸ’» πŸ‘€

Camilo BermΓΊdez

πŸ›

Campion Fellin

πŸ’»

Carter Van Deuren

πŸ›

Chris Garvis

πŸ“–

Christophe Vico

πŸ›

Christopher Currie

πŸ’» πŸ€”

Christopher Rybicki

πŸ“–

CommanderRoot

πŸ’»

Cory Hall

πŸ›

Cristian Măgherușan-Stanciu

πŸ›

CyrusNajmabadi

πŸ› πŸ€”

Damian Silbergleith

πŸ’» πŸ›

Daniel Dinu

πŸ› πŸ’»

Daniel Schmidt

πŸ› πŸ’»

Daniel Schroeder

πŸ› πŸ’» πŸ“– πŸ€” 🚧

Dave Slotnick

πŸ›

Donald Stufft

πŸ› πŸ’» πŸ€” πŸ‘€

Dongie Agnir

πŸ’» πŸ‘€

Eduardo Rabelo

πŸ“–

Eduardo Sena S. Rosa

πŸ›

Elad Ben-Israel

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€ πŸ“’

Eli Polonsky

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Eric Z. Beard

πŸ“†

Erik Karlsson

πŸ›

Eugene Kozlov

πŸ’»

Fabio Gentile

πŸ›

Florian Eitel

πŸ€”

Glib Shpychka

πŸ›

Graham Lea

πŸ€” πŸ‘€

Hamza Assyad

πŸ› πŸ’» πŸ€” πŸ‘€

Hari Pachuveetil

πŸ“ πŸ“–

Hsing-Hui Hsu

πŸ’» πŸ“– πŸ€” πŸ‘€

Ikko Ashimine

πŸ“–

James

πŸ› πŸ’»

James Kelley

πŸ›

James Mead

πŸ’»

James Siri

πŸ’» 🚧

Jason Del Ponte

πŸ€” πŸ‘€

Jason Fulghum

πŸ€” πŸ“† πŸ‘€

Jerry Kindall

πŸ“– πŸ€”

Jimmy Gaussen

πŸ€”

Johannes Weber

πŸ“–

Jon Steinich

πŸ› πŸ€” πŸ’»

Joseph Lawson

πŸ‘€

Joseph Martin

πŸ›

Junix

πŸ›

Justin Frahm

πŸ›

Justin Taylor

πŸ›

Kaizen Conroy

πŸ’» πŸ›

Kaizen Conroy

πŸ’»

Kaushik Borra

πŸ›

Kyle Thomson

πŸ’» πŸ‘€

Leandro Padua

πŸ›

Liang Zhou

πŸ› πŸ’»

Madeline Kusters

πŸ’» πŸ›

Maja S Bratseth

πŸ›

Marcos Diez

πŸ›

Mark Nielsen

πŸ’»

Matthew Bonig

πŸ› πŸ“

Matthew Pirocchi

πŸ’» πŸ€” πŸ‘€

Meng Xin Zhu

πŸ›

Michael Neil

🚧

Mike Lane

πŸ›

Mitch Garnaat

πŸ› πŸ’» πŸ€” πŸ‘€

Mitchell Valine

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Mohamad Soufan

πŸ“–

Mykola Mogylenko

πŸ›

Naumel

πŸ‘€

Neta Nir

πŸ’» πŸ€” 🚧 πŸ‘€

Nick Lynch

πŸ› πŸ’» 🚧 πŸ‘€

Niranjan Jayakar

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Noah Litov

πŸ’» 🚧 πŸ‘€

Otavio Macedo

πŸ’» πŸ›

PIDZ - Bart

πŸ€”

Peter Woodworth

🚧

Petr Kacer

πŸ›

Petra Barus

πŸ’»

Philip Cali

πŸ€”

Quentin Loos

πŸ€”

Raphael

πŸ›

Richard H Boyd

πŸ›

Rico Huijbers

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€

Romain Marcadier

πŸ› πŸ’» 🎨 πŸ€” 🚧 πŸ‘€ πŸ“

SADIK KUZU

πŸ‘€

SK

πŸ€”

Sam Fink

πŸ’» πŸ‘€

Sam Goodwin

πŸ‘€

Sebastian Korfmann

πŸ› πŸ’» πŸ€”

Sepehr Laal

πŸ›

Shane Witbeck

πŸ€”

Shiv Lakshminarayan

πŸ’» 🚧 πŸ‘€

Somaya

πŸ’» πŸ€” 🚧 πŸ‘€

Stephen Kuenzli

πŸ“–

Takahiro Sugiura

πŸ“–

The Gitter Badger

πŸ’» 🚧

Thomas Poignant

πŸ›

Thomas Steinbach

πŸ›

Thorsten Hoeger

πŸ’»

Tim Wagner

πŸ› πŸ€”

Tobias Lidskog

πŸ’»

Ty Coghlan

πŸ›

Tyler van Hensbergen

πŸ€”

Vlad Hrybok

πŸ›

Vladimir Shchur

πŸ›

Yan Zhulanow

πŸ’»

Yigong Liu

πŸ› πŸ€”

Zach Bienenfeld

πŸ›

ajnarang

πŸ€”

aniljava

πŸ’»

arnogeurts-sqills

πŸ› πŸ’»

cn-cit

πŸ›

deccy-mcc

πŸ›

dependabot-preview[bot]

πŸ› 🚧

dependabot[bot]

🚧

dheffx

πŸ›

gregswdl

πŸ›

guyroberts21

πŸ“–

mattBrzezinski

πŸ“–

mergify

🚧

mergify[bot]

🚧

nathannaveen

🚧

seiyashima42

πŸ› πŸ’» πŸ“–

sullis

πŸ’»

vaneek

πŸ›

wendysophie

πŸ›
diff --git a/gh-pages/content/specification/6-compliance-report.md b/gh-pages/content/specification/6-compliance-report.md index ee54cee7a2..4e70f767cd 100644 --- a/gh-pages/content/specification/6-compliance-report.md +++ b/gh-pages/content/specification/6-compliance-report.md @@ -5,7 +5,7 @@ This section details the current state of each language binding with respect to our standard compliance suite. -| number | test | java (98.33%) | golang (79.17%) | Dotnet | Python | +| number | test | java (98.35%) | golang (79.34%) | Dotnet | Python | | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -------------------------------------------- | ------ | ------ | | 1 | asyncOverrides_overrideCallsSuper | 🟒 | [πŸ”΄](https://github.com/aws/jsii/issues/2670) | β­• | β­• | | 2 | [arrayReturnedByMethodCanBeRead]("Array created in the kernel can be queried for its elements") | 🟒 | 🟒 | β­• | β­• | @@ -127,3 +127,4 @@ This section details the current state of each language binding with respect to | 118 | [callbackParameterIsInterface]("Validates pure interfaces can be passed to callbacks") | β­• | 🟒 | β­• | β­• | | 119 | [classCanBeUsedWhenNotExpressedlyLoaded]("Validates that types not explicitly loaded by the user can safely be returned by JS code") | 🟒 | 🟒 | β­• | β­• | | 120 | [downcasting]("Ensures unsafe-cast features work as expected") | β­• | 🟒 | β­• | β­• | +| 121 | [strippedDeprecatedMemberCanBeReceived]("Ensures --strip-deprecated does not cause odd runtime errors") | 🟒 | 🟒 | β­• | β­• | diff --git a/gh-pages/requirements-dev.txt b/gh-pages/requirements-dev.txt index bc3ffc5464..d37bbe573a 100644 --- a/gh-pages/requirements-dev.txt +++ b/gh-pages/requirements-dev.txt @@ -1,4 +1,4 @@ mkdocs~=1.3.1 mkdocs-awesome-pages-plugin~=2.8.0 -mkdocs-material~=8.4.2 +mkdocs-material~=8.5.2 mkdocs-git-revision-date-plugin~=0.3.2 diff --git a/lerna.json b/lerna.json index 137c3dae46..089b8b54ae 100644 --- a/lerna.json +++ b/lerna.json @@ -10,5 +10,5 @@ "rejectCycles": true } }, - "version": "1.67.0" + "version": "1.68.0" } diff --git a/package.json b/package.json index a681de1389..cb44f1f8b5 100644 --- a/package.json +++ b/package.json @@ -16,22 +16,22 @@ }, "devDependencies": { "@jest/types": "^28.1.3", - "@types/jest": "^28.1.8", - "@types/node": "^14.18.26", - "@typescript-eslint/eslint-plugin": "^5.34.0", - "@typescript-eslint/parser": "^5.34.0", - "all-contributors-cli": "^6.20.0", - "eslint": "^8.22.0", + "@types/jest": "^29.0.3", + "@types/node": "^14.18.29", + "@typescript-eslint/eslint-plugin": "^5.38.0", + "@typescript-eslint/parser": "^5.38.0", + "all-contributors-cli": "^6.20.4", + "eslint": "^8.23.1", "eslint-config-prettier": "^8.5.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.0", + "eslint-import-resolver-typescript": "^3.5.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^28.1.3", + "jest": "^29.0.3", "jest-circus": "^28.1.3", "jest-config": "^28.1.3", - "jest-expect-message": "^1.0.2", - "lerna": "^5.4.3", + "jest-expect-message": "^1.1.2", + "lerna": "^5.5.2", "prettier": "^2.7.1", "standard-version": "^9.5.0", "ts-node": "^10.9.1", diff --git a/packages/@jsii/Directory.Build.targets b/packages/@jsii/Directory.Build.targets index d2bf848ad5..5ca1e4c68e 100644 --- a/packages/@jsii/Directory.Build.targets +++ b/packages/@jsii/Directory.Build.targets @@ -6,11 +6,11 @@ - + - + diff --git a/packages/@jsii/benchmarks/package.json b/packages/@jsii/benchmarks/package.json index 7fe3da56d2..c52319100e 100644 --- a/packages/@jsii/benchmarks/package.json +++ b/packages/@jsii/benchmarks/package.json @@ -7,13 +7,13 @@ "dependencies": { "fs-extra": "^10.1.0", "jsii": "^0.0.0", - "npm": "^8.18.0", + "npm": "^8.19.2", "tar": "^6.1.11", "typescript": "~3.9.10", "yargs": "^16.2.0" }, "devDependencies": { - "@types/glob": "^7.2.0", + "@types/glob": "^8.0.0", "glob": "^8.0.3" }, "scripts": { 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 d3df89f7a1..7a7bef2ee5 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 @@ -7,6 +7,7 @@ using CompositeOperation = Amazon.JSII.Tests.CalculatorNamespace.Composition.CompositeOperation; using Amazon.JSII.Tests.CalculatorNamespace.LibNamespace; using Amazon.JSII.Tests.CalculatorNamespace.BaseOfBaseNamespace; +using Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval; using Newtonsoft.Json.Linq; using Xunit; using Xunit.Abstractions; @@ -1534,9 +1535,15 @@ public void ClassCanBeUsedWhenNotExpressedlyLoaded() } private sealed class Cdk16625Impl: Cdk16625 { - protected override double Unwrap(IRandomNumberGenerator rng) { - return rng.Next(); - } + protected override double Unwrap(IRandomNumberGenerator rng) { + return rng.Next(); } + } + + [Fact(DisplayName = Prefix + nameof(StrippedDeprecatedMemberCanBeReceived))] + public void StrippedDeprecatedMemberCanBeReceived() + { + Assert.NotNull(InterfaceFactory.Create()); + } } } diff --git a/packages/@jsii/go-runtime-test/project/compliance_test.go b/packages/@jsii/go-runtime-test/project/compliance_test.go index 529f596476..656ec2d0a9 100644 --- a/packages/@jsii/go-runtime-test/project/compliance_test.go +++ b/packages/@jsii/go-runtime-test/project/compliance_test.go @@ -24,6 +24,7 @@ import ( "github.com/aws/jsii/jsii-calc/go/jsiicalc/v3/submodule/child" calclib "github.com/aws/jsii/jsii-calc/go/scopejsiicalclib" "github.com/aws/jsii/jsii-calc/go/scopejsiicalclib/customsubmodulename" + "github.com/aws/jsii/jsii-calc/go/scopejsiicalclib/deprecationremoval" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" ) @@ -1655,6 +1656,12 @@ func (suite *ComplianceSuite) TestDownCasting() { require.Equal(realValue.Foo(), jsii.Number(1337)) } +func (suite *ComplianceSuite) TestStrippedDeprecatedMemberCanBeReceived() { + require := suite.Require() + + require.NotNil(deprecationremoval.InterfaceFactory_Create()) +} + // required to make `go test` recognize the suite. func TestComplianceSuite(t *testing.T) { suite.Run(t, new(ComplianceSuite)) diff --git a/packages/@jsii/java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java b/packages/@jsii/java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java index 673397e3ef..264bd0ab65 100644 --- a/packages/@jsii/java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java +++ b/packages/@jsii/java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; +import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import software.amazon.jsii.ComplianceSuiteHarness; @@ -14,6 +15,7 @@ import software.amazon.jsii.tests.calculator.cdk16625.Cdk16625; import software.amazon.jsii.tests.calculator.composition.CompositeOperation; import software.amazon.jsii.tests.calculator.custom_submodule_name.NestingClass.NestedStruct; +import software.amazon.jsii.tests.calculator.lib.deprecation_removal.InterfaceFactory; import software.amazon.jsii.tests.calculator.lib.EnumFromScopedModule; import software.amazon.jsii.tests.calculator.lib.IFriendly; import software.amazon.jsii.tests.calculator.lib.MyFirstStruct; @@ -24,10 +26,6 @@ import java.io.IOException; import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.security.AccessController; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.Instant; @@ -334,8 +332,11 @@ public void exceptions() { calc3.add(3); assertEquals(23, calc3.getValue()); boolean thrown = false; - try { calc3.add(10); } - catch (Exception e) { thrown = true; } + try { + calc3.add(10); + } catch (RuntimeException e) { + thrown = true; + } assertTrue(thrown); calc3.setMaxValue(40); calc3.add(10); @@ -449,7 +450,7 @@ public java.lang.Number overrideMe(java.lang.Number mult) { boolean thrown = false; try { obj.callMe(); - } catch (JsiiException e) { + } catch (RuntimeException e) { assertTrue(e.getMessage().contains( "Thrown by native code")); thrown = true; } @@ -518,7 +519,7 @@ public String getTheProperty() { boolean thrown = false; try { so.retrieveValueOfTheProperty(); - } catch (Exception e) { + } catch (RuntimeException e) { assertTrue(e.getMessage().contains("Oh no, this is bad")); thrown = true; } @@ -536,7 +537,7 @@ public void setTheProperty(String value) { boolean thrown = false; try { so.modifyValueOfTheProperty("Hii"); - } catch (Exception e) { + } catch (RuntimeException e) { assertTrue(e.getMessage().contains("Exception from overloaded setter")); thrown = true; } @@ -1787,13 +1788,17 @@ public void iso8601DoesNotDeserializeToDate() { final String nowAsISO = df.format(new Date()); final IWallClock wallClock = new IWallClock() { + @NotNull + @Override public String iso8601Now() { return nowAsISO; } }; final Entropy entropy = new Entropy(wallClock) { - public String repeat(final String word) { + @NotNull + @Override + public String repeat(@NotNull final String word) { return word; } }; @@ -1804,6 +1809,7 @@ public String repeat(final String word) { @Test public void classCanBeUsedWhenNotExpressedlyLoaded() { final Cdk16625 subject = new Cdk16625() { + @NotNull @Override protected java.lang.Number unwrap(final IRandomNumberGenerator rng) { return rng.next(); @@ -1811,4 +1817,9 @@ protected java.lang.Number unwrap(final IRandomNumberGenerator rng) { }; subject.test(); } + + @Test + public void strippedDeprecatedMemberCanBeReceived() { + assertNotNull(InterfaceFactory.create()); + } } diff --git a/packages/@jsii/java-runtime/BundledRuntime.t.js b/packages/@jsii/java-runtime/BundledRuntime.t.js index 5bc380d0fd..daf6890ddd 100644 --- a/packages/@jsii/java-runtime/BundledRuntime.t.js +++ b/packages/@jsii/java-runtime/BundledRuntime.t.js @@ -34,7 +34,7 @@ ${resources.map(extractResource).map(indent(12)).join('\n')} return entrypoint.toString(); } catch (final IOException ioe) { - throw new JsiiException("Unable to extract bundled @jsii/runtime library", ioe); + throw new JsiiError("Unable to extract bundled @jsii/runtime library", ioe); } } diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiClient.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiClient.java index b730bcfa63..9dbbad425d 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiClient.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiClient.java @@ -59,7 +59,7 @@ public void loadModule(final JsiiModule module) { Files.delete(tarball.getParent()); } } catch (IOException e) { - throw new JsiiException("Unable to extract resource " + module.getBundleResourceName(), e); + throw new JsiiError("Unable to extract resource " + module.getBundleResourceName(), e); } } @@ -226,7 +226,7 @@ public List pendingCallbacks() { JsonNode callbacksResp = resp.get("callbacks"); if (callbacksResp == null || !callbacksResp.isArray()) { - throw new JsiiException("Expecting a 'callbacks' key with an array in response"); + throw new JsiiError("Expecting a 'callbacks' key with an array in response"); } ArrayNode callbacksArray = (ArrayNode) callbacksResp; diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiEngine.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiEngine.java index 225a98a136..c4222013b4 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiEngine.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiEngine.java @@ -164,7 +164,7 @@ private JsiiEngine() { */ public void loadModule(final Class moduleClass) { if (!JsiiModule.class.isAssignableFrom(moduleClass)) { - throw new JsiiException("Invalid module class " + throw new JsiiError("Invalid module class " + moduleClass.getName() + ". It must be derived from JsiiModule"); } @@ -173,7 +173,7 @@ public void loadModule(final Class moduleClass) { try { module = moduleClass.getConstructor().newInstance(); } catch (IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException e) { - throw new JsiiException(e); + throw new JsiiError(e); } if (this.loadedModules.containsKey(module.getModuleName())) { @@ -270,12 +270,12 @@ public JsiiObjectRef nativeToObjRef(final Object nativeObject) { * * @param objRef The object reference * @return a JsiiObject - * @throws JsiiException If the object is not found. + * @throws JsiiError If the object is not found. */ public Object getObject(final JsiiObjectRef objRef) { Object obj = this.objects.get(objRef.getObjId()); if (obj == null) { - throw new JsiiException("Cannot find jsii object: " + objRef.getObjId()); + throw new JsiiError("Cannot find jsii object: " + objRef.getObjId()); } return obj; } @@ -303,24 +303,24 @@ Class resolveJavaClass(final String fqn) { } String[] parts = fqn.split("\\."); if (parts.length < 2) { - throw new JsiiException("Malformed FQN: " + fqn); + throw new JsiiError("Malformed FQN: " + fqn); } String moduleName = parts[0]; JsonNode names = this.getClient().getModuleNames(moduleName); if (!names.has("java")) { - throw new JsiiException("No java name for module " + moduleName); + throw new JsiiError("No java name for module " + moduleName); } final JsiiModule module = this.loadedModules.get(moduleName); if (module == null) { - throw new JsiiException("No loaded module is named " + moduleName); + throw new JsiiError("No loaded module is named " + moduleName); } try { return module.resolveClass(fqn); } catch (final ClassNotFoundException cfne) { - throw new JsiiException(cfne); + throw new JsiiError(cfne); } } @@ -346,12 +346,12 @@ private JsiiObject createNativeProxy(final String fqn, final JsiiObjectRef objRe ctor.setAccessible(false); return newObj; } catch (NoSuchMethodException e) { - throw new JsiiException("Cannot create native object of type " + throw new JsiiError("Cannot create native object of type " + klass.getName() + " without a constructor that accepts an InitializationMode argument", e); } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) { - throw new JsiiException("Unable to instantiate a new object for FQN " + fqn + ": " + throw new JsiiError("Unable to instantiate a new object for FQN " + fqn + ": " + e.getMessage(), e); } } catch (ClassNotFoundException e) { @@ -369,7 +369,7 @@ private JsiiObject createNativeProxy(final String fqn, final JsiiObjectRef objRe public Enum findEnumValue(final String enumRef) { int sep = enumRef.lastIndexOf('/'); if (sep == -1) { - throw new JsiiException("Malformed enum reference: " + enumRef); + throw new JsiiError("Malformed enum reference: " + enumRef); } String typeName = enumRef.substring(0, sep); @@ -396,7 +396,7 @@ public void processAllPendingCallbacks() { * Invokes a local callback and returns the result/error. * @param callback The callback to invoke. * @return The return value - * @throws JsiiException if the callback failed. + * @throws JsiiError if the callback failed. */ public JsonNode handleCallback(final Callback callback) { @@ -408,7 +408,7 @@ public JsonNode handleCallback(final Callback callback) { return invokeCallbackSet(callback.getSet()); } - throw new JsiiException("Unrecognized callback type: get/set/invoke"); + throw new JsiiError("Unrecognized callback type: get/set/invoke"); } /** @@ -486,9 +486,9 @@ private Object invokeMethod(final Object obj, final Method method, final Object. throw e; } } catch (InvocationTargetException e) { - throw new JsiiException(e.getTargetException()); + throw new JsiiError(e.getTargetException()); } catch (IllegalAccessException e) { - throw new JsiiException(e); + throw new JsiiError(e); } finally { // revert accessibility. method.setAccessible(accessibility); @@ -503,7 +503,7 @@ private void processCallback(final Callback callback) { try { JsonNode result = handleCallback(callback); this.getClient().completeCallback(callback, null, result); - } catch (JsiiException e) { + } catch (JsiiError e) { this.getClient().completeCallback(callback, e.getMessage(), null); } } @@ -528,7 +528,7 @@ private Method findCallbackMethod(final Class klass, final String signature) return findCallbackMethod(klass.getSuperclass(), signature); } - throw new JsiiException("Unable to find callback method with signature: " + signature); + throw new JsiiError("Unable to find callback method with signature: " + signature); } /** @@ -536,7 +536,7 @@ private Method findCallbackMethod(final Class klass, final String signature) * @param klass is the type on which the getter is to be searched for * @param methodName is the name of the getter method * @return the found Method - * @throws JsiiException if no such method is found + * @throws JsiiError if no such method is found */ private Method findCallbackGetter(final Class klass, final String methodName) { try { @@ -549,7 +549,7 @@ private Method findCallbackGetter(final Class klass, final String methodName) // Ignored! } } - throw new JsiiException(nsme); + throw new JsiiError(nsme); } } @@ -559,7 +559,7 @@ private Method findCallbackGetter(final Class klass, final String methodName) * @param methodName is the name of the setter method * @param valueType is the type of the argument the setter accepts * @return the found Method - * @throws JsiiException if no such method is found + * @throws JsiiError if no such method is found */ private Method findCallbackSetter(final Class klass, final String methodName, final Class valueType) { try { @@ -572,7 +572,7 @@ private Method findCallbackSetter(final Class klass, final String methodName, // Ignored! } } - throw new JsiiException(nsme); + throw new JsiiError(nsme); } } @@ -731,7 +731,7 @@ static Jsii tryGetJsiiAnnotation(final Class type, final boolean inherited) { String loadModuleForClass(Class nativeClass) { final Jsii jsii = tryGetJsiiAnnotation(nativeClass, true); if (jsii == null) { - throw new JsiiException("Unable to find @Jsii annotation for class"); + throw new JsiiError("Unable to find @Jsii annotation for class"); } this.loadModule(jsii.module()); diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiError.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiError.java new file mode 100644 index 0000000000..f64d3a2d9c --- /dev/null +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiError.java @@ -0,0 +1,34 @@ +package software.amazon.jsii; + +/** + * A nonrecoverable error from the jsii runtime, + * usually the kernel. + */ +public final class JsiiError extends JsiiException { + public static final long serialVersionUID = 1L; + + /** + * Creates an exception. + * @param message The error message + */ + JsiiError(final String message) { + super(message); + } + + /** + * Creates an exception. + * @param e The error that caused this exception + */ + JsiiError(final Throwable e) { + super(e); + } + + /** + * Creates an exception. + * @param message The error message + * @param e The error that caused this exception + */ + JsiiError(final String message, final Throwable e) { + super(message, e); + } +} diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiException.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiException.java index 34361bdaa8..92e5d5a305 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiException.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiException.java @@ -1,33 +1,48 @@ package software.amazon.jsii; -/** +/* * An error raised by the jsii runtime. */ -public final class JsiiException extends RuntimeException { +public abstract class JsiiException extends RuntimeException { public static final long serialVersionUID = 1L; - /** - * Creates an exception. - * @param message The error message - */ - JsiiException(final String message) { - super(message); - } + static enum Type { + JSII_FAULT("@jsii/kernel.Fault"), + RUNTIME_EXCEPTION("@jsii/kernel.RuntimeException"); - /** - * Creates an exception. - * @param e The error that caused this exception - */ - JsiiException(final Throwable e) { - super(e); - } + private final String errorType; + + Type(String str) { + this.errorType = str; + } - /** - * Creates an exception. - * @param message The error message - * @param e The error that caused this exception - */ - JsiiException(final String message, final Throwable e) { - super(message, e); + public String toString() { + return this.errorType; + } } + + /** + * Creates an exception. + * @param message The error message + */ + JsiiException(final String message) { + super(message); + } + + /** + * Creates an exception. + * @param e The error that caused this exception + */ + JsiiException(final Throwable e) { + super(e); + } + + /** + * Creates an exception. + * @param message The error message + * @param e The error that caused this exception + */ + JsiiException(final String message, final Throwable e) { + super(message, e); + } } diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObject.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObject.java index 776b1bbf7a..84761907ec 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObject.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObject.java @@ -53,7 +53,7 @@ protected JsiiObject(final InitializationMode initializationMode) { JsiiObject(@Nullable final JsiiEngine engine, final InitializationMode initializationMode) { this.jsii$engine = JsiiEngine.getEngineFor(this, engine); if (initializationMode != InitializationMode.JSII) { - throw new JsiiException("The only supported initialization mode is '" + InitializationMode.JSII + "'"); + throw new JsiiError("The only supported initialization mode is '" + InitializationMode.JSII + "'"); } } @@ -380,11 +380,11 @@ final T asInterfaceProxy(final Class proxyCl constructor.setAccessible(oldAccessible); } } catch(final NoSuchMethodException nsme) { - throw new JsiiException("Unable to find interface proxy constructor on " + proxyClass.getCanonicalName(), nsme); + throw new JsiiError("Unable to find interface proxy constructor on " + proxyClass.getCanonicalName(), nsme); } catch (final InvocationTargetException | InstantiationException e) { - throw new JsiiException("Unable to initialize interface proxy " + proxyClass.getCanonicalName(), e); + throw new JsiiError("Unable to initialize interface proxy " + proxyClass.getCanonicalName(), e); } catch (final IllegalAccessException iae) { - throw new JsiiException("Unable to invoke constructor of " + proxyClass.getCanonicalName(), iae); + throw new JsiiError("Unable to invoke constructor of " + proxyClass.getCanonicalName(), iae); } } @SuppressWarnings("unchecked") diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectMapper.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectMapper.java index 2dd7d317c8..c5d58a1acc 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectMapper.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectMapper.java @@ -32,7 +32,7 @@ public final class JsiiObjectMapper { /** * Similar to calling JsiiObjectMapper.INSTANCE.treeToValue, but handles a null JsonNode argument - * well, and throws JsiiException instead of JsonProcessingException. + * well, and throws JsiiError instead of JsonProcessingException. * * @param tree the JSON object to parse * @param valueType the expected type value type @@ -228,7 +228,7 @@ private static final class EnumSerializer extends JsonSerializer { public void serialize(final Enum value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { Jsii jsii = this.tryGetJsiiAnnotation(value.getClass()); if (jsii == null) { - throw new JsiiException("Cannot serialize non-jsii enums"); + throw new JsiiError("Cannot serialize non-jsii enums"); } else { gen.writeStartObject(); gen.writeStringField(TOKEN_ENUM, jsii.fqn() + "/" + value.toString()); diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectRef.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectRef.java index 383ead102e..ce218d9872 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectRef.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiObjectRef.java @@ -74,7 +74,7 @@ private JsiiObjectRef(final String objId, final Set interfaces, final Js */ public static JsiiObjectRef parse(final JsonNode objRef) { if (!objRef.has(TOKEN_REF)) { - throw new JsiiException("Malformed object reference. Expecting " + TOKEN_REF); + throw new JsiiError("Malformed object reference. Expecting " + TOKEN_REF); } return new JsiiObjectRef(objRef.get(TOKEN_REF).textValue(), objRef); diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiRuntime.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiRuntime.java index bfda1b8de9..94520bbcbf 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiRuntime.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/JsiiRuntime.java @@ -76,7 +76,8 @@ public final class JsiiRuntime { * * @param request The JSON request * @return The JSON response - * @throws JsiiException If the runtime returns an error response. + * @throws JsiiError If the runtime returns an error response originating from the @jsii/kernel. + * @throws RuntimeException If the runtime returns an error response. */ JsonNode requestResponse(final JsonNode request) { try { @@ -104,24 +105,29 @@ JsonNode requestResponse(final JsonNode request) { return resp.get("ok"); } catch (IOException e) { - throw new JsiiException("Unable to send request to jsii-runtime: " + e.toString(), e); + throw new JsiiError("Unable to send request to jsii-runtime: " + e.toString(), e); } } /** * Handles an "error" response by extracting the message and stack trace - * and throwing a JsiiException. + * and throwing a JsiiError or a RuntimeException. * * @param resp The response * @return Never */ private JsonNode processErrorResponse(final JsonNode resp) { + String errorName = resp.get("name").asText(); String errorMessage = resp.get("error").asText(); if (resp.has("stack")) { errorMessage += "\n" + resp.get("stack").asText(); } - throw new JsiiException(errorMessage); + if (errorName.equals(JsiiException.Type.RUNTIME_EXCEPTION.toString())) { + throw new RuntimeException(errorMessage); + } + + throw new JsiiError(errorMessage); } /** @@ -133,7 +139,7 @@ private JsonNode processErrorResponse(final JsonNode resp) { */ private JsonNode processCallbackResponse(final JsonNode resp) { if (this.callbackHandler == null) { - throw new JsiiException("Cannot process callback since callbackHandler was not set"); + throw new JsiiError("Cannot process callback since callbackHandler was not set"); } Callback callback = JsiiObjectMapper.treeToValue(resp.get("callback"), NativeType.forClass(Callback.class)); @@ -310,7 +316,7 @@ private void handshake() { JsonNode helloResponse = this.readNextResponse(); if (!helloResponse.has("hello")) { - throw new JsiiException("Expecting 'hello' message from jsii-runtime"); + throw new JsiiError("Expecting 'hello' message from jsii-runtime"); } String runtimeVersion = helloResponse.get("hello").asText(); @@ -321,19 +327,19 @@ private void handshake() { * Reads the next response from STDOUT of the child process. * * @return The parsed JSON response. - * @throws JsiiException if we couldn't parse the response. + * @throws JsiiError if we couldn't parse the response. */ JsonNode readNextResponse() { try { String responseLine = this.stdout.readLine(); if (responseLine == null) { - throw new JsiiException("Child process exited unexpectedly!"); + throw new JsiiError("Child process exited unexpectedly!"); } final JsonNode response = JsiiObjectMapper.INSTANCE.readTree(responseLine); JsiiRuntime.notifyInspector(response, MessageInspector.MessageType.Response); return response; } catch (IOException e) { - throw new JsiiException("Unable to read reply from jsii-runtime: " + e.toString(), e); + throw new JsiiError("Unable to read reply from jsii-runtime: " + e.toString(), e); } } @@ -345,7 +351,7 @@ JsonNode readNextResponse() { public JsiiClient getClient() { this.startRuntimeIfNeeded(); if (this.client == null) { - throw new JsiiException("Client not created"); + throw new JsiiError("Client not created"); } return this.client; } @@ -356,13 +362,13 @@ public JsiiClient getClient() { * * @param expectedVersion The version this client expects from the runtime * @param actualVersion The actual version the runtime reports - * @throws JsiiException if versions mismatch + * @throws JsiiError if versions mismatch */ static void assertVersionCompatible(final String expectedVersion, final String actualVersion) { final String shortActualVersion = actualVersion.replaceAll(VERSION_BUILD_PART_REGEX, ""); final String shortExpectedVersion = expectedVersion.replaceAll(VERSION_BUILD_PART_REGEX, ""); if (shortExpectedVersion.compareTo(shortActualVersion) != 0) { - throw new JsiiException("Incompatible jsii-runtime version. Expecting " + throw new JsiiError("Incompatible jsii-runtime version. Expecting " + shortExpectedVersion + ", actual was " + shortActualVersion); } diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/UnsafeCast.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/UnsafeCast.java index c1b3a570ea..ccc6a5b9eb 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/UnsafeCast.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/UnsafeCast.java @@ -49,11 +49,11 @@ public static T unsafeCast(final JsiiObject value, constructor.setAccessible(oldAccessible); } } catch (final NoSuchMethodException nsme) { - throw new JsiiException(String.format("Unable to find interface proxy constructor on %s", annotation.value().getCanonicalName()), nsme); + throw new JsiiError(String.format("Unable to find interface proxy constructor on %s", annotation.value().getCanonicalName()), nsme); } catch (final InvocationTargetException | InstantiationException e) { - throw new JsiiException(String.format("Unable to initialize interface proxy %s", annotation.value().getCanonicalName()), e); + throw new JsiiError(String.format("Unable to initialize interface proxy %s", annotation.value().getCanonicalName()), e); } catch (final IllegalAccessException iae) { - throw new JsiiException(String.format("Unable to invoke constructor of %s", annotation.value().getCanonicalName()), iae); + throw new JsiiError(String.format("Unable to invoke constructor of %s", annotation.value().getCanonicalName()), iae); } } diff --git a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/Util.java b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/Util.java index e132ee85aa..7e1c82defe 100644 --- a/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/Util.java +++ b/packages/@jsii/java-runtime/project/src/main/java/software/amazon/jsii/Util.java @@ -90,7 +90,7 @@ private static boolean isMatchingGetterPresent(final String getterName, final Cl static String javaPropertyToJSProperty(final Method method) { final String getterSetterMethod = method.getName(); if (!isJavaPropertyMethod(method)) { - throw new JsiiException("Invalid getter/setter method. Must start with get/set"); + throw new JsiiError("Invalid getter/setter method. Must start with get/set"); } String camelCase = getterSetterMethod.substring( @@ -112,7 +112,7 @@ static String javaPropertyToJSProperty(final Method method) { */ static String javaScriptPropertyToJavaPropertyName(final String prefix, final String jsPropertyName) { if (jsPropertyName.isEmpty()) { - throw new JsiiException("jsPropertyName must not be empty"); + throw new JsiiError("jsPropertyName must not be empty"); } StringBuilder sb = new StringBuilder(); diff --git a/packages/@jsii/kernel/package.json b/packages/@jsii/kernel/package.json index 76e82ed9a8..37afccaeb8 100644 --- a/packages/@jsii/kernel/package.json +++ b/packages/@jsii/kernel/package.json @@ -42,7 +42,7 @@ "@types/fs-extra": "^9.0.13", "@types/lockfile": "^1.0.2", "@types/tar": "^6.1.2", - "jest-expect-message": "^1.0.2", + "jest-expect-message": "^1.1.2", "jsii-build-tools": "^0.0.0", "jsii-calc": "^3.20.120" } diff --git a/packages/@jsii/kernel/src/kernel.ts b/packages/@jsii/kernel/src/kernel.ts index 7426dab9da..36d2ee571d 100644 --- a/packages/@jsii/kernel/src/kernel.ts +++ b/packages/@jsii/kernel/src/kernel.ts @@ -15,6 +15,28 @@ import * as onExit from './on-exit'; import * as wire from './serialization'; import * as tar from './tar-cache'; +export const enum JsiiErrorType { + JSII_FAULT = '@jsii/kernel.Fault', + RUNTIME_ERROR = '@jsii/kernel.RuntimeError', +} + +export interface JsiiError extends Error { + readonly name: JsiiErrorType; +} + +export class JsiiFault extends Error implements JsiiError { + public readonly name = JsiiErrorType.JSII_FAULT; + public constructor(message: string) { + super(message); + } +} + +export class RuntimeError extends Error implements JsiiError { + public readonly name = JsiiErrorType.RUNTIME_ERROR; + public constructor(message: string) { + super(message); + } +} export class Kernel { /** * Set to true for verbose debugging. @@ -56,7 +78,7 @@ export class Kernel { this._debug('load', req); if ('assembly' in req) { - throw new Error( + throw new JsiiFault( '`assembly` field is deprecated for "load", use `name`, `version` and `tarball` instead', ); } @@ -70,7 +92,7 @@ export class Kernel { // module exists, verify version const epkg = fs.readJsonSync(path.join(packageDir, 'package.json')); if (epkg.version !== pkgver) { - throw new Error( + throw new JsiiFault( `Multiple versions ${pkgver} and ${epkg.version} of the ` + `package '${pkgname}' cannot be loaded together since this is unsupported by ` + 'some runtime environments', @@ -135,7 +157,9 @@ export class Kernel { `loadAssemblyFromPath(${packageDir})`, ); } catch (e: any) { - throw new Error(`Error for package tarball ${req.tarball}: ${e.message}`); + throw new JsiiFault( + `Error for package tarball ${req.tarball}: ${e.message}`, + ); } // load the module and capture its closure @@ -166,13 +190,15 @@ export class Kernel { const epkg = fs.readJsonSync(path.join(packageDir, 'package.json')); if (!epkg.bin) { - throw new Error('There is no bin scripts defined for this package.'); + throw new JsiiFault( + 'There is no bin scripts defined for this package.', + ); } const scriptPath = epkg.bin[req.script]; if (!epkg.bin) { - throw new Error(`Script with name ${req.script} was not defined.`); + throw new JsiiFault(`Script with name ${req.script} was not defined.`); } const result = cp.spawnSync( @@ -198,7 +224,7 @@ export class Kernel { signal: result.signal, }; } - throw new Error(`Package with name ${req.assembly} was not loaded.`); + throw new JsiiFault(`Package with name ${req.assembly} was not loaded.`); } public create(req: api.CreateRequest): api.CreateResponse { @@ -221,7 +247,7 @@ export class Kernel { const ti = this._typeInfoForProperty(property, fqn); if (!ti.static) { - throw new Error(`property ${symbol} is not static`); + throw new JsiiFault(`property ${symbol} is not static`); } const prototype = this._findSymbol(fqn); @@ -244,11 +270,11 @@ export class Kernel { const ti = this._typeInfoForProperty(property, fqn); if (!ti.static) { - throw new Error(`property ${symbol} is not static`); + throw new JsiiFault(`property ${symbol} is not static`); } if (ti.immutable) { - throw new Error(`static property ${symbol} is readonly`); + throw new JsiiFault(`static property ${symbol} is readonly`); } const prototype = this._findSymbol(fqn); @@ -299,7 +325,7 @@ export class Kernel { const propInfo = this._typeInfoForProperty(req.property, fqn, interfaces); if (propInfo.immutable) { - throw new Error( + throw new JsiiFault( `Cannot set value of immutable property ${req.property} to ${req.value}`, ); } @@ -328,7 +354,7 @@ export class Kernel { // verify this is not an async method if (ti.async) { - throw new Error(`${method} is an async method, use "begin" instead`); + throw new JsiiFault(`${method} is an async method, use "begin" instead`); } const fqn = jsiiTypeFqn(obj); @@ -365,12 +391,12 @@ export class Kernel { const ti = this._typeInfoForMethod(method, fqn); if (!ti.static) { - throw new Error(`${fqn}.${method} is not a static method`); + throw new JsiiFault(`${fqn}.${method} is not a static method`); } // verify this is not an async method if (ti.async) { - throw new Error(`${method} is an async method, use "begin" instead`); + throw new JsiiFault(`${method} is an async method, use "begin" instead`); } const prototype = this._findSymbol(fqn); @@ -404,7 +430,7 @@ export class Kernel { this._debug('begin', objref, method, args); if (this.syncInProgress) { - throw new Error( + throw new JsiiFault( `Cannot invoke async method '${req.objref[TOKEN_REF]}.${req.method}' while sync ${this.syncInProgress} is being processed`, ); } @@ -413,7 +439,7 @@ export class Kernel { // verify this is indeed an async method if (!ti.async) { - throw new Error(`Method ${method} is expected to be an async method`); + throw new JsiiFault(`Method ${method} is expected to be an async method`); } const fqn = jsiiTypeFqn(obj); @@ -448,7 +474,7 @@ export class Kernel { const storedPromise = this.promises.get(promiseid); if (storedPromise == null) { - throw new Error(`Cannot find promise with ID: ${promiseid}`); + throw new JsiiFault(`Cannot find promise with ID: ${promiseid}`); } const { promise, method } = storedPromise; @@ -458,7 +484,7 @@ export class Kernel { this._debug('promise result:', result); } catch (e) { this._debug('promise error:', e); - throw e; + throw new JsiiFault((e as any).message); } return { @@ -497,7 +523,7 @@ export class Kernel { const cb = this.waiting.get(cbid); if (!cb) { - throw new Error(`Callback ${cbid} not found`); + throw new JsiiFault(`Callback ${cbid} not found`); } if (err) { @@ -530,7 +556,9 @@ export class Kernel { const assembly = this._assemblyFor(assemblyName); const targets = assembly.metadata.targets; if (!targets) { - throw new Error(`Unexpected - "targets" for ${assemblyName} is missing!`); + throw new JsiiFault( + `Unexpected - "targets" for ${assemblyName} is missing!`, + ); } return { naming: targets }; @@ -555,7 +583,7 @@ export class Kernel { case spec.TypeKind.Class: case spec.TypeKind.Enum: const constructor = this._findSymbol(fqn); - tagJsiiConstructor(constructor, fqn, assm.metadata.version); + tagJsiiConstructor(constructor, fqn); } } } @@ -581,12 +609,12 @@ export class Kernel { }; case spec.TypeKind.Interface: - throw new Error( + throw new JsiiFault( `Cannot create an object with an FQN of an interface: ${fqn}`, ); default: - throw new Error(`Unexpected FQN kind: ${fqn}`); + throw new JsiiFault(`Unexpected FQN kind: ${fqn}`); } } @@ -635,10 +663,10 @@ export class Kernel { for (const override of overrides) { if (api.isMethodOverride(override)) { if (api.isPropertyOverride(override)) { - throw new Error(overrideTypeErrorMessage); + throw new JsiiFault(overrideTypeErrorMessage); } if (methods.has(override.method)) { - throw new Error( + throw new JsiiFault( `Duplicate override for method '${override.method}'`, ); } @@ -647,10 +675,10 @@ export class Kernel { this._applyMethodOverride(obj, objref, fqn, interfaces, override); } else if (api.isPropertyOverride(override)) { if (api.isMethodOverride(override)) { - throw new Error(overrideTypeErrorMessage); + throw new JsiiFault(overrideTypeErrorMessage); } if (properties.has(override.property)) { - throw Error( + throw new JsiiFault( `Duplicate override for property '${override.property}'`, ); } @@ -658,7 +686,7 @@ export class Kernel { this._applyPropertyOverride(obj, objref, fqn, interfaces, override); } else { - throw new Error(overrideTypeErrorMessage); + throw new JsiiFault(overrideTypeErrorMessage); } } } @@ -679,7 +707,7 @@ export class Kernel { ) { // error if we can find a method with this name if (this._tryTypeInfoForMethod(override.property, typeFqn, interfaces)) { - throw new Error( + throw new JsiiFault( `Trying to override method '${override.property}' as a property`, ); } @@ -802,7 +830,7 @@ export class Kernel { ) { // error if we can find a property with this name if (this._tryTypeInfoForProperty(override.method, typeFqn, interfaces)) { - throw new Error( + throw new JsiiFault( `Trying to override property '${override.method}' as a method`, ); } @@ -940,7 +968,7 @@ export class Kernel { if (!fn) { fn = instance[methodName]; if (!fn) { - throw new Error(`Cannot find ${methodName} on object`); + throw new JsiiFault(`Cannot find ${methodName} on object`); } } return { ti, obj: instance, fn }; @@ -954,7 +982,7 @@ export class Kernel { // error if args > params if (args.length > params.length && !(method && method.variadic)) { - throw new Error( + throw new JsiiFault( `Too many arguments (method accepts ${params.length} parameters, got ${args.length} arguments)`, ); } @@ -969,7 +997,7 @@ export class Kernel { } // No vararg was provided for (let j = i; j < params.length; j++) { if (!param.optional && params[j] === undefined) { - throw new Error( + throw new JsiiFault( `Unexpected 'undefined' value at index ${ j - i } of variadic argument '${ @@ -979,7 +1007,7 @@ export class Kernel { } } } else if (!param.optional && arg === undefined) { - throw new Error( + throw new JsiiFault( `Not enough arguments. Missing argument for the required parameter '${ param.name }' of type '${spec.describeTypeReference(param.type)}'`, @@ -991,7 +1019,7 @@ export class Kernel { private _assemblyFor(assemblyName: string) { const assembly = this.assemblies.get(assemblyName); if (!assembly) { - throw new Error(`Could not find assembly: ${assemblyName}`); + throw new JsiiFault(`Could not find assembly: ${assemblyName}`); } return assembly; } @@ -1010,7 +1038,7 @@ export class Kernel { curr = curr[name]; } if (!curr) { - throw new Error(`Could not find symbol ${fqn}`); + throw new JsiiFault(`Could not find symbol ${fqn}`); } return curr; } @@ -1021,13 +1049,13 @@ export class Kernel { const assembly = this.assemblies.get(moduleName); if (!assembly) { - throw new Error(`Module '${moduleName}' not found`); + throw new JsiiFault(`Module '${moduleName}' not found`); } const types = assembly.metadata.types ?? {}; const fqnInfo = types[fqn]; if (!fqnInfo) { - throw new Error(`Type '${fqn}' not found`); + throw new JsiiFault(`Type '${fqn}' not found`); } return fqnInfo; @@ -1044,7 +1072,7 @@ export class Kernel { interfaces && interfaces.length > 0 ? ` or interface(s) ${interfaces.join(', ')}` : ''; - throw new Error( + throw new JsiiFault( `Class ${fqn}${addendum} doesn't have a method '${methodName}'`, ); } @@ -1114,7 +1142,7 @@ export class Kernel { properties = interfaceTypeInfo.properties; bases = interfaceTypeInfo.interfaces ?? []; } else { - throw new Error( + throw new JsiiFault( `Type of kind ${typeInfo.kind} does not have properties`, ); } @@ -1148,7 +1176,7 @@ export class Kernel { interfaces && interfaces.length > 0 ? ` or interface(s) ${interfaces.join(', ')}` : ''; - throw new Error( + throw new JsiiFault( `Type ${fqn}${addendum} doesn't have a property '${property}'`, ); } @@ -1233,7 +1261,7 @@ export class Kernel { parametersCopy.push(parametersCopy[parametersCopy.length - 1]); } if (xs.length > parametersCopy.length) { - throw new Error( + throw new JsiiFault( `Argument list (${JSON.stringify( xs, )}) not same size as expected argument list (length ${ @@ -1278,6 +1306,14 @@ export class Kernel { this.syncInProgress = desc; try { return fn(); + } catch (e: any) { + if (e.name === JsiiErrorType.JSII_FAULT) { + throw new JsiiFault(e); + } + // This error can be thrown by the kernel directly, or it can be + // thrown from user code. If the error comes from the kernel, then its name field will be populated; + // if the error comes from user code, the name field will not be populated. + throw new RuntimeError(e); } finally { delete this.syncInProgress; } diff --git a/packages/@jsii/kernel/src/objects.ts b/packages/@jsii/kernel/src/objects.ts index 293732ea48..ea7d78fd76 100644 --- a/packages/@jsii/kernel/src/objects.ts +++ b/packages/@jsii/kernel/src/objects.ts @@ -1,6 +1,8 @@ import * as spec from '@jsii/spec'; +import * as assert from 'assert'; import * as api from './api'; +import { JsiiFault } from './kernel'; import { EMPTY_OBJECT_FQN } from './serialization'; /** @@ -14,15 +16,12 @@ const OBJID_SYMBOL = Symbol.for('$__jsii__objid__$'); const IFACES_SYMBOL = Symbol.for('$__jsii__interfaces__$'); /** - * Symbol we use to tag the constructor of a JSII class + * Symbol we use to tag constructors that are exported from a JSII module. */ -const JSII_RTTI_SYMBOL = Symbol.for('jsii.rtti'); +const JSII_TYPE_FQN_SYMBOL = Symbol('$__jsii__fqn__$'); interface ManagedConstructor { - readonly [JSII_RTTI_SYMBOL]: { - readonly fqn: string; - readonly version: string; - }; + readonly [JSII_TYPE_FQN_SYMBOL]: string; } type MaybeManagedConstructor = Partial; @@ -35,7 +34,7 @@ type MaybeManagedConstructor = Partial; * information. */ export function jsiiTypeFqn(obj: any): string | undefined { - return (obj.constructor as MaybeManagedConstructor)[JSII_RTTI_SYMBOL]?.fqn; + return (obj.constructor as MaybeManagedConstructor)[JSII_TYPE_FQN_SYMBOL]; } /** @@ -95,19 +94,21 @@ function tagObject(obj: unknown, objid: string, interfaces?: string[]) { /** * Set the JSII FQN for classes produced by a given constructor */ -export function tagJsiiConstructor( - constructor: any, - fqn: string, - version: string, -) { - if (Object.prototype.hasOwnProperty.call(constructor, JSII_RTTI_SYMBOL)) { - return; +export function tagJsiiConstructor(constructor: any, fqn: string) { + if (Object.prototype.hasOwnProperty.call(constructor, JSII_TYPE_FQN_SYMBOL)) { + return assert( + constructor[JSII_TYPE_FQN_SYMBOL] === fqn, + `Unable to register ${constructor.name} as ${fqn}: it is already registerd with FQN ${constructor[JSII_TYPE_FQN_SYMBOL]}`, + ); } - Object.defineProperty(constructor, JSII_RTTI_SYMBOL, { + + // Mark this constructor as exported from a jsii module, so we know we + // should be considering it's FQN as a valid exported type. + Object.defineProperty(constructor, JSII_TYPE_FQN_SYMBOL, { configurable: false, enumerable: false, writable: false, - value: { fqn, version }, + value: fqn, }); } @@ -136,7 +137,7 @@ export class ObjectTable { interfaces?: string[], ): api.ObjRef { if (fqn === undefined) { - throw new Error('FQN cannot be undefined'); + throw new JsiiFault('FQN cannot be undefined'); } const existingRef = objectReference(obj); @@ -179,13 +180,15 @@ export class ObjectTable { */ public findObject(objref: api.ObjRef): RegisteredObject { if (typeof objref !== 'object' || !(api.TOKEN_REF in objref)) { - throw new Error(`Malformed object reference: ${JSON.stringify(objref)}`); + throw new JsiiFault( + `Malformed object reference: ${JSON.stringify(objref)}`, + ); } const objid = objref[api.TOKEN_REF]; const obj = this.objects.get(objid); if (!obj) { - throw new Error(`Object ${objid} not found`); + throw new JsiiFault(`Object ${objid} not found`); } // If there are "additional" interfaces declared on the objref, merge them @@ -215,7 +218,7 @@ export class ObjectTable { */ public deleteObject({ [api.TOKEN_REF]: objid }: api.ObjRef) { if (!this.objects.delete(objid)) { - throw new Error(`Object ${objid} not found`); + throw new JsiiFault(`Object ${objid} not found`); } } @@ -267,7 +270,7 @@ class InterfaceCollection implements Iterable { public addFromClass(fqn: string): void { const ti = this.resolveType(fqn); if (!spec.isClassType(ti)) { - throw new Error( + throw new JsiiFault( `Expected a class, but received ${spec.describeTypeReference(ti)}`, ); } @@ -288,7 +291,7 @@ class InterfaceCollection implements Iterable { public addFromInterface(fqn: string): void { const ti = this.resolveType(fqn); if (!spec.isInterfaceType(ti)) { - throw new Error( + throw new JsiiFault( `Expected an interface, but received ${spec.describeTypeReference(ti)}`, ); } diff --git a/packages/@jsii/kernel/src/recording.ts b/packages/@jsii/kernel/src/recording.ts index 0f77519403..bb77e9c05c 100644 --- a/packages/@jsii/kernel/src/recording.ts +++ b/packages/@jsii/kernel/src/recording.ts @@ -1,6 +1,6 @@ import * as fs from 'fs-extra'; -import { Kernel } from './kernel'; +import { RuntimeError, JsiiErrorType, JsiiFault, Kernel } from './kernel'; export async function closeRecording(kernel: Kernel): Promise { const logfile: fs.WriteStream = (kernel as any).logfile; @@ -50,7 +50,7 @@ export function recordInteraction(kernel: Kernel, inputOutputLogPath: string) { ok(value); }) .catch((err: any) => { - logOutput({ error: err.message }); + logOutput({ error: err.message, name: err.name }); fail(err); }); }); @@ -59,8 +59,11 @@ export function recordInteraction(kernel: Kernel, inputOutputLogPath: string) { logOutput({ ok: ret }); return ret; } catch (e: any) { - logOutput({ error: e.message }); - throw e; + logOutput({ error: e.message, name: e.name }); + if (e.type === JsiiErrorType.RUNTIME_ERROR) { + throw new RuntimeError(e.message); + } + throw new JsiiFault(e.message); } }, }); diff --git a/packages/@jsii/python-runtime/package.json b/packages/@jsii/python-runtime/package.json index 9958e36bf9..0c14c888f0 100644 --- a/packages/@jsii/python-runtime/package.json +++ b/packages/@jsii/python-runtime/package.json @@ -42,6 +42,6 @@ "jsii-build-tools": "^0.0.0", "jsii-calc": "^3.20.120", "jsii-pacmak": "^0.0.0", - "pyright": "^1.1.268" + "pyright": "^1.1.272" } } diff --git a/packages/@jsii/python-runtime/requirements.txt b/packages/@jsii/python-runtime/requirements.txt index 7da535a7e0..20f49c411f 100644 --- a/packages/@jsii/python-runtime/requirements.txt +++ b/packages/@jsii/python-runtime/requirements.txt @@ -1,4 +1,4 @@ -black~=22.6 +black~=22.8 mypy==0.812 pip~=22.2 pytest~=7.1 diff --git a/packages/@jsii/python-runtime/tests/test_compliance.py b/packages/@jsii/python-runtime/tests/test_compliance.py index 046ae13839..329aabfca6 100644 --- a/packages/@jsii/python-runtime/tests/test_compliance.py +++ b/packages/@jsii/python-runtime/tests/test_compliance.py @@ -86,6 +86,7 @@ from jsii_calc.submodule.child import SomeEnum from scope.jsii_calc_lib import IFriendly, EnumFromScopedModule, Number from scope.jsii_calc_lib.custom_submodule_name import IReflectable, ReflectableEntry +from scope.jsii_calc_lib.deprecation_removal import InterfaceFactory # Note: The names of these test functions have been chosen to map as closely to the # Java Compliance tests as possible. @@ -1343,3 +1344,7 @@ def _unwrap(self, rng: IRandomNumberGenerator): # This should NOT throw Subject().test() + + +def test_stripped_deprecated_member_can_be_received(): + assert InterfaceFactory.create() is not None diff --git a/packages/@jsii/runtime/lib/host.ts b/packages/@jsii/runtime/lib/host.ts index 44a38dec7b..e12d33f418 100644 --- a/packages/@jsii/runtime/lib/host.ts +++ b/packages/@jsii/runtime/lib/host.ts @@ -1,4 +1,4 @@ -import { api, Kernel } from '@jsii/kernel'; +import { api, Kernel, JsiiFault, JsiiError } from '@jsii/kernel'; import { EventEmitter } from 'events'; import { Input, IInputOutput } from './in-out'; @@ -48,7 +48,7 @@ export class KernelHost { function completeCallback(this: KernelHost): void { const req = this.inout.read(); if (!req || 'exit' in req) { - throw new Error('Interrupted before callback returned'); + throw new JsiiFault('Interrupted before callback returned'); } // if this is a completion for the current callback, then we can @@ -59,7 +59,7 @@ export class KernelHost { completeReq.complete.cbid === callback.cbid ) { if (completeReq.complete.err) { - throw new Error(completeReq.complete.err); + throw new JsiiFault(completeReq.complete.err); } return completeReq.complete.result; @@ -93,13 +93,13 @@ export class KernelHost { */ private processRequest(req: Input, next: () => void, sync = false) { if ('callback' in req) { - throw new Error( + throw new JsiiFault( 'Unexpected `callback` result. This request should have been processed by a callback handler', ); } if (!('api' in req)) { - throw new Error('Malformed request, "api" field is required'); + throw new JsiiFault('Malformed request, "api" field is required'); } const apiReq = req; @@ -152,7 +152,7 @@ export class KernelHost { } this.writeOkay(ret); - } catch (e) { + } catch (e: any) { this.writeError(e); } @@ -161,7 +161,7 @@ export class KernelHost { function checkIfAsyncIsAllowed() { if (sync) { - throw new Error( + throw new JsiiFault( 'Cannot handle async operations while waiting for a sync callback to return', ); } @@ -179,11 +179,12 @@ export class KernelHost { /** * Writes an "error" result to stdout. */ - private writeError(error: any) { - const res = { error: error.message, stack: undefined }; - if (!this.opts.noStack) { - res.stack = error.stack; - } + private writeError(error: JsiiError) { + const res = { + error: error.message, + name: error.name, + stack: this.opts.noStack ? undefined : error.stack, + }; this.inout.write(res); } diff --git a/packages/@jsii/runtime/test/__snapshots__/kernel-host.test.js.snap b/packages/@jsii/runtime/test/__snapshots__/kernel-host.test.js.snap index db48861aa8..ff90ce109f 100644 --- a/packages/@jsii/runtime/test/__snapshots__/kernel-host.test.js.snap +++ b/packages/@jsii/runtime/test/__snapshots__/kernel-host.test.js.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`can load libraries from within a callback 1`] = ` -Object { - "ok": Object { +{ + "ok": { "assembly": "@scope/jsii-calc-base-of-base", "types": "*redacted*", }, @@ -10,8 +10,8 @@ Object { `; exports[`can load libraries from within a callback 2`] = ` -Object { - "ok": Object { +{ + "ok": { "assembly": "@scope/jsii-calc-base", "types": "*redacted*", }, @@ -19,8 +19,8 @@ Object { `; exports[`can load libraries from within a callback 3`] = ` -Object { - "ok": Object { +{ + "ok": { "assembly": "@scope/jsii-calc-lib", "types": "*redacted*", }, @@ -28,10 +28,10 @@ Object { `; exports[`can load libraries from within a callback 4`] = ` -Object { - "ok": Object { +{ + "ok": { "$jsii.byref": "Object@10000", - "$jsii.interfaces": Array [ + "$jsii.interfaces": [ "@scope/jsii-calc-lib.IFriendly", ], }, @@ -39,16 +39,16 @@ Object { `; exports[`can load libraries from within a callback 5`] = ` -Object { - "callback": Object { +{ + "callback": { "cbid": "jsii::callback::20000", "cookie": undefined, - "invoke": Object { - "args": Array [], + "invoke": { + "args": [], "method": "hello", - "objref": Object { + "objref": { "$jsii.byref": "Object@10000", - "$jsii.interfaces": Array [ + "$jsii.interfaces": [ "@scope/jsii-calc-lib.IFriendly", ], }, @@ -58,8 +58,8 @@ Object { `; exports[`can load libraries from within a callback 6`] = ` -Object { - "ok": Object { +{ + "ok": { "assembly": "jsii-calc", "types": "*redacted*", }, @@ -67,8 +67,8 @@ Object { `; exports[`can load libraries from within a callback 7`] = ` -Object { - "ok": Object { +{ + "ok": { "result": "SUCCESS!", }, } diff --git a/packages/@scope/jsii-calc-lib/deprecated-to-strip.txt b/packages/@scope/jsii-calc-lib/deprecated-to-strip.txt new file mode 100644 index 0000000000..c685eefe76 --- /dev/null +++ b/packages/@scope/jsii-calc-lib/deprecated-to-strip.txt @@ -0,0 +1 @@ +@scope/jsii-calc-lib.deprecationRemoval.DeprecatedImplementation diff --git a/packages/@scope/jsii-calc-lib/lib/deprecation-removal.ts b/packages/@scope/jsii-calc-lib/lib/deprecation-removal.ts new file mode 100644 index 0000000000..75e18b6776 --- /dev/null +++ b/packages/@scope/jsii-calc-lib/lib/deprecation-removal.ts @@ -0,0 +1,16 @@ +export interface IInterface { + method(): void; +} + +/** @deprecated do not use me! */ +export class DeprecatedImplementation implements IInterface { + public method(): void { } +} + +export class InterfaceFactory { + public static create(): IInterface { + return new DeprecatedImplementation(); + } + + private constructor() { } +} diff --git a/packages/@scope/jsii-calc-lib/lib/index.ts b/packages/@scope/jsii-calc-lib/lib/index.ts index beeee50442..46c4bd4045 100644 --- a/packages/@scope/jsii-calc-lib/lib/index.ts +++ b/packages/@scope/jsii-calc-lib/lib/index.ts @@ -129,3 +129,4 @@ export class BaseFor2647 { export * as submodule from './submodule'; export * from './duplicate-inherited-prop'; +export * as deprecationRemoval from './deprecation-removal'; diff --git a/packages/@scope/jsii-calc-lib/package.json b/packages/@scope/jsii-calc-lib/package.json index 5f44f71d9c..d3bc5c4f32 100644 --- a/packages/@scope/jsii-calc-lib/package.json +++ b/packages/@scope/jsii-calc-lib/package.json @@ -26,7 +26,7 @@ "main": "build/index.js", "types": "build/index.d.ts", "scripts": { - "build": "jsii --project-references && jsii-rosetta", + "build": "jsii --project-references --strip-deprecated=deprecated-to-strip.txt && jsii-rosetta", "pacmak": "jsii-pacmak", "test": "diff-test test/assembly.jsii .jsii", "test:update": "npm run build && UPDATE_DIFF=1 npm run test" diff --git a/packages/@scope/jsii-calc-lib/test/assembly.jsii b/packages/@scope/jsii-calc-lib/test/assembly.jsii index 671057ad68..318b1a07be 100644 --- a/packages/@scope/jsii-calc-lib/test/assembly.jsii +++ b/packages/@scope/jsii-calc-lib/test/assembly.jsii @@ -92,6 +92,13 @@ }, "schema": "jsii/0.10.0", "submodules": { + "@scope/jsii-calc-lib.deprecationRemoval": { + "locationInModule": { + "filename": "lib/index.ts", + "line": 132 + }, + "symbolId": "lib/deprecation-removal:" + }, "@scope/jsii-calc-lib.submodule": { "locationInModule": { "filename": "lib/index.ts", @@ -729,6 +736,67 @@ ], "symbolId": "lib/index:StructWithOnlyOptionals" }, + "@scope/jsii-calc-lib.deprecationRemoval.IInterface": { + "assembly": "@scope/jsii-calc-lib", + "docs": { + "stability": "deprecated" + }, + "fqn": "@scope/jsii-calc-lib.deprecationRemoval.IInterface", + "kind": "interface", + "locationInModule": { + "filename": "lib/deprecation-removal.ts", + "line": 1 + }, + "methods": [ + { + "abstract": true, + "docs": { + "stability": "deprecated" + }, + "locationInModule": { + "filename": "lib/deprecation-removal.ts", + "line": 2 + }, + "name": "method" + } + ], + "name": "IInterface", + "namespace": "deprecationRemoval", + "symbolId": "lib/deprecation-removal:IInterface" + }, + "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory": { + "assembly": "@scope/jsii-calc-lib", + "docs": { + "stability": "deprecated" + }, + "fqn": "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory", + "kind": "class", + "locationInModule": { + "filename": "lib/deprecation-removal.ts", + "line": 10 + }, + "methods": [ + { + "docs": { + "stability": "deprecated" + }, + "locationInModule": { + "filename": "lib/deprecation-removal.ts", + "line": 11 + }, + "name": "create", + "returns": { + "type": { + "fqn": "@scope/jsii-calc-lib.deprecationRemoval.IInterface" + } + }, + "static": true + } + ], + "name": "InterfaceFactory", + "namespace": "deprecationRemoval", + "symbolId": "lib/deprecation-removal:InterfaceFactory" + }, "@scope/jsii-calc-lib.submodule.IReflectable": { "assembly": "@scope/jsii-calc-lib", "docs": { @@ -954,5 +1022,5 @@ } }, "version": "0.0.0", - "fingerprint": "kYLYyNyPod3JTyJWmgPJL1Z85k0HEEhQeMIs4zH4bEQ=" + "fingerprint": "XDMAZYhhgc09X8VS8hpn3ch21YxKDn+HB0w82IofsRM=" } \ No newline at end of file diff --git a/packages/jsii-calc/lib/index.ts b/packages/jsii-calc/lib/index.ts index 5e6f39c2ca..9c487d7c6c 100644 --- a/packages/jsii-calc/lib/index.ts +++ b/packages/jsii-calc/lib/index.ts @@ -25,3 +25,4 @@ export * as cdk16625 from './cdk16625'; export * as jsii3656 from './jsii3656'; export * as anonymous from './anonymous'; +export * as union from './union'; diff --git a/packages/jsii-calc/lib/union.ts b/packages/jsii-calc/lib/union.ts new file mode 100644 index 0000000000..ef4bf22b8f --- /dev/null +++ b/packages/jsii-calc/lib/union.ts @@ -0,0 +1,21 @@ +import { IFriendly } from '@scope/jsii-calc-lib'; + +export interface IResolvable { + resolve(): any; +} + +export class Resolvable implements IResolvable { + private constructor() {} + + public resolve(): any { + return false; + } +} + +export class ConsumesUnion { + public static unionType(param: IResolvable | Resolvable | IFriendly) { + void param; + } + + private constructor() {} +} diff --git a/packages/jsii-calc/test/assembly.jsii b/packages/jsii-calc/test/assembly.jsii index 469a62babe..d98342303c 100644 --- a/packages/jsii-calc/test/assembly.jsii +++ b/packages/jsii-calc/test/assembly.jsii @@ -95,6 +95,7 @@ }, "@scope/jsii-calc-lib": { "submodules": { + "@scope/jsii-calc-lib.deprecationRemoval": {}, "@scope/jsii-calc-lib.submodule": { "targets": { "dotnet": { @@ -421,6 +422,13 @@ "line": 4 }, "symbolId": "lib/submodule/returns-param/index:" + }, + "jsii-calc.union": { + "locationInModule": { + "filename": "lib/index.ts", + "line": 28 + }, + "symbolId": "lib/union:" } }, "targets": { @@ -18199,8 +18207,125 @@ "name": "ReturnsSpecialParameter", "namespace": "submodule.returnsparam", "symbolId": "lib/submodule/returns-param/index:ReturnsSpecialParameter" + }, + "jsii-calc.union.ConsumesUnion": { + "assembly": "jsii-calc", + "docs": { + "stability": "stable" + }, + "fqn": "jsii-calc.union.ConsumesUnion", + "kind": "class", + "locationInModule": { + "filename": "lib/union.ts", + "line": 15 + }, + "methods": [ + { + "docs": { + "stability": "stable" + }, + "locationInModule": { + "filename": "lib/union.ts", + "line": 16 + }, + "name": "unionType", + "parameters": [ + { + "name": "param", + "type": { + "union": { + "types": [ + { + "fqn": "jsii-calc.union.IResolvable" + }, + { + "fqn": "jsii-calc.union.Resolvable" + }, + { + "fqn": "@scope/jsii-calc-lib.IFriendly" + } + ] + } + } + } + ], + "static": true + } + ], + "name": "ConsumesUnion", + "namespace": "union", + "symbolId": "lib/union:ConsumesUnion" + }, + "jsii-calc.union.IResolvable": { + "assembly": "jsii-calc", + "docs": { + "stability": "stable" + }, + "fqn": "jsii-calc.union.IResolvable", + "kind": "interface", + "locationInModule": { + "filename": "lib/union.ts", + "line": 3 + }, + "methods": [ + { + "abstract": true, + "docs": { + "stability": "stable" + }, + "locationInModule": { + "filename": "lib/union.ts", + "line": 4 + }, + "name": "resolve", + "returns": { + "type": { + "primitive": "any" + } + } + } + ], + "name": "IResolvable", + "namespace": "union", + "symbolId": "lib/union:IResolvable" + }, + "jsii-calc.union.Resolvable": { + "assembly": "jsii-calc", + "docs": { + "stability": "stable" + }, + "fqn": "jsii-calc.union.Resolvable", + "interfaces": [ + "jsii-calc.union.IResolvable" + ], + "kind": "class", + "locationInModule": { + "filename": "lib/union.ts", + "line": 7 + }, + "methods": [ + { + "docs": { + "stability": "stable" + }, + "locationInModule": { + "filename": "lib/union.ts", + "line": 10 + }, + "name": "resolve", + "overrides": "jsii-calc.union.IResolvable", + "returns": { + "type": { + "primitive": "any" + } + } + } + ], + "name": "Resolvable", + "namespace": "union", + "symbolId": "lib/union:Resolvable" } }, "version": "3.20.120", - "fingerprint": "Ze43eowG9ImRufT3MQ8yO+bW8JzOQlZIYtFsjpc960E=" + "fingerprint": "O7e7hA2s4dwiCigDIFE0ANjlmeXIQydXdSodi9WHja4=" } \ No newline at end of file diff --git a/packages/jsii-config/package.json b/packages/jsii-config/package.json index f1aadc097d..93be3ed418 100644 --- a/packages/jsii-config/package.json +++ b/packages/jsii-config/package.json @@ -20,8 +20,8 @@ }, "devDependencies": { "@types/inquirer": "^8.2.3", - "@types/yargs": "^17.0.11", - "jest-expect-message": "^1.0.2" + "@types/yargs": "^17.0.12", + "jest-expect-message": "^1.1.2" }, "dependencies": { "@jsii/check-node": "0.0.0", diff --git a/packages/jsii-diff/package.json b/packages/jsii-diff/package.json index 9f5a44aa98..c9aba1f0ae 100644 --- a/packages/jsii-diff/package.json +++ b/packages/jsii-diff/package.json @@ -43,7 +43,7 @@ "devDependencies": { "@types/fs-extra": "^9.0.13", "@types/tar-fs": "^2.0.1", - "jest-expect-message": "^1.0.2", + "jest-expect-message": "^1.1.2", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0" } diff --git a/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts b/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts index c59e6d3703..8014a86638 100644 --- a/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts +++ b/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts @@ -172,6 +172,31 @@ abstract class Validation { code.openBlock(`switch (${expression})`); for (const type of types) { validTypes.push(resolver.toDotNetTypeName(type.spec!)); + + /** + * Filter to remove classes and interfaces from a set of type references that + * are implied by another entry in the set. Practically this is meant to remove + * types from a set if a parent type of it is also present in the set, keeping + * only the most generic declaration. + * + * This is useful because the TypeScript compiler and jsii do not guarantee that + * all entries in a type union are unrelated, but the C# compiler treats dead + * code as an error, and will refuse to compile (error CS8120) a pattern-matching + * switch case if it cannot be matched (for example, if it matches on a child of + * a type that was previously matched on already). + */ + if ( + (type.type?.isClassType() || type.type?.isInterfaceType()) && + types.some( + (other) => + other !== type && + other.type != null && + type.type!.extends(other.type), + ) + ) { + continue; + } + const typeNames = [resolver.toDotNetType(type.spec!)]; if (typeNames[0] === 'double') { // For doubles, we accept any numeric value, really... diff --git a/packages/jsii-pacmak/lib/targets/go/package.ts b/packages/jsii-pacmak/lib/targets/go/package.ts index 943607e9fa..41145a8d7b 100644 --- a/packages/jsii-pacmak/lib/targets/go/package.ts +++ b/packages/jsii-pacmak/lib/targets/go/package.ts @@ -379,6 +379,7 @@ export class RootPackage extends Package { public readonly assembly: Assembly; public readonly version: string; private readonly versionFile: VersionFile; + private readonly typeCache = new Map(); // This cache of root packages is shared across all root packages derived created by this one (via dependencies). private readonly rootPackageCache: Map; @@ -459,15 +460,21 @@ export class RootPackage extends Package { * This allows resolving type references from other JSII modules */ public findType(fqn: string): GoType | undefined { - return this.packageDependencies.reduce( - (accum: GoType | undefined, current: RootPackage) => { - if (accum) { - return accum; - } - return current.findType(fqn); - }, - super.findType(fqn), - ); + if (!this.typeCache.has(fqn)) { + this.typeCache.set( + fqn, + this.packageDependencies.reduce( + (accum: GoType | undefined, current: RootPackage) => { + if (accum) { + return accum; + } + return current.findType(fqn); + }, + super.findType(fqn), + ), + ); + } + return this.typeCache.get(fqn); } /* diff --git a/packages/jsii-pacmak/package.json b/packages/jsii-pacmak/package.json index b3d8382712..d9343ac21f 100644 --- a/packages/jsii-pacmak/package.json +++ b/packages/jsii-pacmak/package.json @@ -65,7 +65,7 @@ "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", "jsii-calc": "^3.20.120", - "pyright": "^1.1.268" + "pyright": "^1.1.272" }, "keywords": [ "jsii", diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-dotnet.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-dotnet.test.js.snap index 4af83084d1..0e038f7652 100644 --- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-dotnet.test.js.snap +++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-dotnet.test.js.snap @@ -1011,6 +1011,9 @@ exports[`Generated code for "@scope/jsii-calc-lib": / 1`] = ` ┃ ┣━ πŸ“ CalculatorNamespace ┃ ┃ ┗━ πŸ“ LibNamespace ┃ ┃ ┣━ πŸ“„ BaseFor2647.cs + ┃ ┃ ┣━ πŸ“ DeprecationRemoval + ┃ ┃ ┃ ┣━ πŸ“„ IInterface.cs + ┃ ┃ ┃ ┗━ πŸ“„ InterfaceFactory.cs ┃ ┃ ┣━ πŸ“„ DiamondLeft.cs ┃ ┃ ┣━ πŸ“„ DiamondRight.cs ┃ ┃ ┣━ πŸ“„ EnumFromScopedModule.cs @@ -1151,6 +1154,95 @@ namespace Amazon.JSII.Tests.CalculatorNamespace.LibNamespace `; +exports[`Generated code for "@scope/jsii-calc-lib": /dotnet/Amazon.JSII.Tests.CalculatorPackageId.LibPackageId/Amazon/JSII/Tests/CalculatorNamespace/LibNamespace/DeprecationRemoval/IInterface.cs 1`] = ` +using Amazon.JSII.Runtime.Deputy; + +#pragma warning disable CS0672,CS0809,CS1591 + +namespace Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval +{ + /// + /// Stability: Deprecated + /// + [JsiiInterface(nativeType: typeof(IInterface), fullyQualifiedName: "@scope/jsii-calc-lib.deprecationRemoval.IInterface")] + [System.Obsolete()] + public interface IInterface + { + /// + /// Stability: Deprecated + /// + [JsiiMethod(name: "method")] + [System.Obsolete()] + void Method(); + + /// + /// Stability: Deprecated + /// + [JsiiTypeProxy(nativeType: typeof(IInterface), fullyQualifiedName: "@scope/jsii-calc-lib.deprecationRemoval.IInterface")] + [System.Obsolete()] + internal sealed class _Proxy : DeputyBase, Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval.IInterface + { + private _Proxy(ByRefValue reference): base(reference) + { + } + + /// + /// Stability: Deprecated + /// + [JsiiMethod(name: "method")] + [System.Obsolete()] + public void Method() + { + InvokeInstanceVoidMethod(new System.Type[]{}, new object[]{}); + } + } + } +} + +`; + +exports[`Generated code for "@scope/jsii-calc-lib": /dotnet/Amazon.JSII.Tests.CalculatorPackageId.LibPackageId/Amazon/JSII/Tests/CalculatorNamespace/LibNamespace/DeprecationRemoval/InterfaceFactory.cs 1`] = ` +using Amazon.JSII.Runtime.Deputy; + +#pragma warning disable CS0672,CS0809,CS1591 + +namespace Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval +{ + /// + /// Stability: Deprecated + /// + [JsiiClass(nativeType: typeof(Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval.InterfaceFactory), fullyQualifiedName: "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory")] + [System.Obsolete()] + public class InterfaceFactory : DeputyBase + { + /// Used by jsii to construct an instance of this class from a Javascript-owned object reference + /// The Javascript-owned object reference + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + protected InterfaceFactory(ByRefValue reference): base(reference) + { + } + + /// Used by jsii to construct an instance of this class from DeputyProps + /// The deputy props + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + protected InterfaceFactory(DeputyProps props): base(props) + { + } + + /// + /// Stability: Deprecated + /// + [JsiiMethod(name: "create", returnsJson: "{\\"type\\":{\\"fqn\\":\\"@scope/jsii-calc-lib.deprecationRemoval.IInterface\\"}}")] + [System.Obsolete()] + public static Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval.IInterface Create() + { + return InvokeStaticMethod(typeof(Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.DeprecationRemoval.InterfaceFactory), new System.Type[]{}, new object[]{})!; + } + } +} + +`; + exports[`Generated code for "@scope/jsii-calc-lib": /dotnet/Amazon.JSII.Tests.CalculatorPackageId.LibPackageId/Amazon/JSII/Tests/CalculatorNamespace/LibNamespace/DiamondLeft.cs 1`] = ` using Amazon.JSII.Runtime.Deputy; @@ -3167,6 +3259,10 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┃ ┣━ πŸ“„ TwoMethodsWithSimilarCapitalization.cs ┃ ┣━ πŸ“„ UmaskCheck.cs ┃ ┣━ πŸ“„ UnaryOperation.cs + ┃ ┣━ πŸ“ Union + ┃ ┃ ┣━ πŸ“„ ConsumesUnion.cs + ┃ ┃ ┣━ πŸ“„ IResolvable.cs + ┃ ┃ ┗━ πŸ“„ Resolvable.cs ┃ ┣━ πŸ“„ UnionProperties.cs ┃ ┣━ πŸ“„ UpcasingReflectable.cs ┃ ┣━ πŸ“„ UseBundledDependency.cs @@ -19762,6 +19858,105 @@ namespace Amazon.JSII.Tests.CalculatorNamespace `; +exports[`Generated code for "jsii-calc": /dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/Union/ConsumesUnion.cs 1`] = ` +using Amazon.JSII.Runtime.Deputy; + +#pragma warning disable CS0672,CS0809,CS1591 + +namespace Amazon.JSII.Tests.CalculatorNamespace.Union +{ + [JsiiClass(nativeType: typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.ConsumesUnion), fullyQualifiedName: "jsii-calc.union.ConsumesUnion")] + public class ConsumesUnion : DeputyBase + { + /// Used by jsii to construct an instance of this class from a Javascript-owned object reference + /// The Javascript-owned object reference + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + protected ConsumesUnion(ByRefValue reference): base(reference) + { + } + + /// Used by jsii to construct an instance of this class from DeputyProps + /// The deputy props + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + protected ConsumesUnion(DeputyProps props): base(props) + { + } + + [JsiiMethod(name: "unionType", parametersJson: "[{\\"name\\":\\"param\\",\\"type\\":{\\"union\\":{\\"types\\":[{\\"fqn\\":\\"jsii-calc.union.IResolvable\\"},{\\"fqn\\":\\"jsii-calc.union.Resolvable\\"},{\\"fqn\\":\\"@scope/jsii-calc-lib.IFriendly\\"}]}}}]")] + public static void UnionType(object param) + { + InvokeStaticVoidMethod(typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.ConsumesUnion), new System.Type[]{typeof(object)}, new object[]{param}); + } + } +} + +`; + +exports[`Generated code for "jsii-calc": /dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/Union/IResolvable.cs 1`] = ` +using Amazon.JSII.Runtime.Deputy; + +#pragma warning disable CS0672,CS0809,CS1591 + +namespace Amazon.JSII.Tests.CalculatorNamespace.Union +{ + [JsiiInterface(nativeType: typeof(IResolvable), fullyQualifiedName: "jsii-calc.union.IResolvable")] + public interface IResolvable + { + [JsiiMethod(name: "resolve", returnsJson: "{\\"type\\":{\\"primitive\\":\\"any\\"}}")] + object Resolve(); + + [JsiiTypeProxy(nativeType: typeof(IResolvable), fullyQualifiedName: "jsii-calc.union.IResolvable")] + internal sealed class _Proxy : DeputyBase, Amazon.JSII.Tests.CalculatorNamespace.Union.IResolvable + { + private _Proxy(ByRefValue reference): base(reference) + { + } + + [JsiiMethod(name: "resolve", returnsJson: "{\\"type\\":{\\"primitive\\":\\"any\\"}}")] + public object Resolve() + { + return InvokeInstanceMethod(new System.Type[]{}, new object[]{})!; + } + } + } +} + +`; + +exports[`Generated code for "jsii-calc": /dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/Union/Resolvable.cs 1`] = ` +using Amazon.JSII.Runtime.Deputy; + +#pragma warning disable CS0672,CS0809,CS1591 + +namespace Amazon.JSII.Tests.CalculatorNamespace.Union +{ + [JsiiClass(nativeType: typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.Resolvable), fullyQualifiedName: "jsii-calc.union.Resolvable")] + public class Resolvable : DeputyBase, Amazon.JSII.Tests.CalculatorNamespace.Union.IResolvable + { + /// Used by jsii to construct an instance of this class from a Javascript-owned object reference + /// The Javascript-owned object reference + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + protected Resolvable(ByRefValue reference): base(reference) + { + } + + /// Used by jsii to construct an instance of this class from DeputyProps + /// The deputy props + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + protected Resolvable(DeputyProps props): base(props) + { + } + + [JsiiMethod(name: "resolve", returnsJson: "{\\"type\\":{\\"primitive\\":\\"any\\"}}")] + public virtual object Resolve() + { + return InvokeInstanceMethod(new System.Type[]{}, new object[]{})!; + } + } +} + +`; + exports[`Generated code for "jsii-calc": /dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/UnionProperties.cs 1`] = ` using Amazon.JSII.Runtime.Deputy; @@ -20583,6 +20778,8 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┣━ πŸ“„ StructUnionConsumer.cs.diff ┣━ πŸ“„ StructWithCollectionOfUnionts.cs.diff ┣━ πŸ“„ TopLevelStruct.cs.diff + ┣━ πŸ“ Union + ┃ ┗━ πŸ“„ ConsumesUnion.cs.diff ┣━ πŸ“„ UnionProperties.cs.diff ┗━ πŸ“„ VariadicTypeUnion.cs.diff `; @@ -21252,6 +21449,38 @@ exports[`Generated code for "jsii-calc": /dotnet/Amazon /// You don't have to pass this. `; +exports[`Generated code for "jsii-calc": /dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/Union/ConsumesUnion.cs.diff 1`] = ` +--- dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/Union/ConsumesUnion.cs --no-runtime-type-checking ++++ dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/Union/ConsumesUnion.cs --runtime-type-checking +@@ -22,9 +22,26 @@ + } + + [JsiiMethod(name: "unionType", parametersJson: "[{\\"name\\":\\"param\\",\\"type\\":{\\"union\\":{\\"types\\":[{\\"fqn\\":\\"jsii-calc.union.IResolvable\\"},{\\"fqn\\":\\"jsii-calc.union.Resolvable\\"},{\\"fqn\\":\\"@scope/jsii-calc-lib.IFriendly\\"}]}}}]")] + public static void UnionType(object param) + { ++ if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking) ++ { ++ switch (param) ++ { ++ case Amazon.JSII.Tests.CalculatorNamespace.Union.IResolvable cast_ccaaac: ++ break; ++ case Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.IFriendly cast_ccaaac: ++ break; ++ case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_ccaaac: ++ // Not enough information to type-check... ++ break; ++ case null: ++ throw new System.ArgumentException($"Expected argument {nameof(param)} to be one of: {typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.IResolvable).FullName}, {typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.Resolvable).FullName}, {typeof(Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.IFriendly).FullName}; received null", nameof(param)); ++ default: ++ throw new System.ArgumentException($"Expected argument {nameof(param)} to be one of: {typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.IResolvable).FullName}, {typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.Resolvable).FullName}, {typeof(Amazon.JSII.Tests.CalculatorNamespace.LibNamespace.IFriendly).FullName}; received {param.GetType().FullName}", nameof(param)); ++ } ++ } + InvokeStaticVoidMethod(typeof(Amazon.JSII.Tests.CalculatorNamespace.Union.ConsumesUnion), new System.Type[]{typeof(object)}, new object[]{param}); + } + } + } +`; + exports[`Generated code for "jsii-calc": /dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/UnionProperties.cs.diff 1`] = ` --- dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/UnionProperties.cs --no-runtime-type-checking +++ dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/UnionProperties.cs --runtime-type-checking diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.js.snap index ba52978d53..170650e4a5 100644 --- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.js.snap +++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.js.snap @@ -971,6 +971,10 @@ exports[`Generated code for "@scope/jsii-calc-lib": / 1`] = ` ┃ ┣━ πŸ“„ customsubmodulename_Reflector.go ┃ ┣━ πŸ“„ customsubmodulename.go ┃ ┗━ πŸ“„ README.md + ┣━ πŸ“ deprecationremoval + ┃ ┣━ πŸ“„ deprecationremoval_IInterface.go + ┃ ┣━ πŸ“„ deprecationremoval_InterfaceFactory.go + ┃ ┗━ πŸ“„ deprecationremoval.go ┣━ πŸ“„ go.mod ┣━ πŸ“ internal ┃ ┗━ πŸ“„ types.go @@ -1471,6 +1475,103 @@ func (r *jsiiProxy_Reflector) AsMap(reflectable IReflectable) *map[string]interf } +`; + +exports[`Generated code for "@scope/jsii-calc-lib": /go/scopejsiicalclib/deprecationremoval/deprecationremoval.go 1`] = ` +package deprecationremoval + +import ( + "reflect" + + _jsii_ "github.com/aws/jsii-runtime-go/runtime" +) + +func init() { + _jsii_.RegisterInterface( + "@scope/jsii-calc-lib.deprecationRemoval.IInterface", + reflect.TypeOf((*IInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + }, + func() interface{} { + return &jsiiProxy_IInterface{} + }, + ) + _jsii_.RegisterClass( + "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory", + reflect.TypeOf((*InterfaceFactory)(nil)).Elem(), + nil, // no members + func() interface{} { + return &jsiiProxy_InterfaceFactory{} + }, + ) +} + +`; + +exports[`Generated code for "@scope/jsii-calc-lib": /go/scopejsiicalclib/deprecationremoval/deprecationremoval_IInterface.go 1`] = ` +package deprecationremoval + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" +) + +// Deprecated. +type IInterface interface { + // Deprecated. + Method() +} + +// The jsii proxy for IInterface +type jsiiProxy_IInterface struct { + _ byte // padding +} + +func (i *jsiiProxy_IInterface) Method() { + _jsii_.InvokeVoid( + i, + "method", + nil, // no parameters + ) +} + + +`; + +exports[`Generated code for "@scope/jsii-calc-lib": /go/scopejsiicalclib/deprecationremoval/deprecationremoval_InterfaceFactory.go 1`] = ` +package deprecationremoval + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" + _init_ "github.com/aws/jsii/jsii-calc/go/scopejsiicalclib/jsii" +) + +// Deprecated. +type InterfaceFactory interface { +} + +// The jsii proxy struct for InterfaceFactory +type jsiiProxy_InterfaceFactory struct { + _ byte // padding +} + +// Deprecated. +func InterfaceFactory_Create() IInterface { + _init_.Initialize() + + var returns IInterface + + _jsii_.StaticInvoke( + "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory", + "create", + nil, // no parameters + &returns, + ) + + return returns +} + + `; exports[`Generated code for "@scope/jsii-calc-lib": /go/scopejsiicalclib/go.mod 1`] = ` @@ -2808,6 +2909,11 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┃ ┣━ πŸ“„ submodule_Default.go ┃ ┣━ πŸ“„ submodule_MyClass.go ┃ ┗━ πŸ“„ submodule.go + ┣━ πŸ“ union + ┃ ┣━ πŸ“„ union_ConsumesUnion.go + ┃ ┣━ πŸ“„ union_IResolvable.go + ┃ ┣━ πŸ“„ union_Resolvable.go + ┃ ┗━ πŸ“„ union.go ┗━ πŸ“„ version `; @@ -24157,6 +24263,144 @@ func (m *jsiiProxy_MyClass) MethodWithSpecialParam(param *param.SpecialParameter } +`; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union.go 1`] = ` +package union + +import ( + "reflect" + + _jsii_ "github.com/aws/jsii-runtime-go/runtime" +) + +func init() { + _jsii_.RegisterClass( + "jsii-calc.union.ConsumesUnion", + reflect.TypeOf((*ConsumesUnion)(nil)).Elem(), + nil, // no members + func() interface{} { + return &jsiiProxy_ConsumesUnion{} + }, + ) + _jsii_.RegisterInterface( + "jsii-calc.union.IResolvable", + reflect.TypeOf((*IResolvable)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "resolve", GoMethod: "Resolve"}, + }, + func() interface{} { + return &jsiiProxy_IResolvable{} + }, + ) + _jsii_.RegisterClass( + "jsii-calc.union.Resolvable", + reflect.TypeOf((*Resolvable)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "resolve", GoMethod: "Resolve"}, + }, + func() interface{} { + j := jsiiProxy_Resolvable{} + _jsii_.InitJsiiProxy(&j.jsiiProxy_IResolvable) + return &j + }, + ) +} + +`; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union_ConsumesUnion.go 1`] = ` +package union + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" + _init_ "github.com/aws/jsii/jsii-calc/go/jsiicalc/v3/jsii" +) + +type ConsumesUnion interface { +} + +// The jsii proxy struct for ConsumesUnion +type jsiiProxy_ConsumesUnion struct { + _ byte // padding +} + +func ConsumesUnion_UnionType(param interface{}) { + _init_.Initialize() + + _jsii_.StaticInvokeVoid( + "jsii-calc.union.ConsumesUnion", + "unionType", + []interface{}{param}, + ) +} + + +`; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union_IResolvable.go 1`] = ` +package union + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" +) + +type IResolvable interface { + Resolve() interface{} +} + +// The jsii proxy for IResolvable +type jsiiProxy_IResolvable struct { + _ byte // padding +} + +func (i *jsiiProxy_IResolvable) Resolve() interface{} { + var returns interface{} + + _jsii_.Invoke( + i, + "resolve", + nil, // no parameters + &returns, + ) + + return returns +} + + +`; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union_Resolvable.go 1`] = ` +package union + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" +) + +type Resolvable interface { + IResolvable + Resolve() interface{} +} + +// The jsii proxy struct for Resolvable +type jsiiProxy_Resolvable struct { + jsiiProxy_IResolvable +} + +func (r *jsiiProxy_Resolvable) Resolve() interface{} { + var returns interface{} + + _jsii_.Invoke( + r, + "resolve", + nil, // no parameters + &returns, + ) + + return returns +} + + `; exports[`Generated code for "jsii-calc": /go/jsiicalc/version 1`] = ` @@ -24492,14 +24736,18 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┃ ┣━ πŸ†• pythonself_IInterfaceWithSelf__no_runtime_type_checking.go ┃ ┣━ πŸ†• pythonself_IInterfaceWithSelf__runtime_type_checks.go ┃ ┗━ πŸ“„ pythonself_IInterfaceWithSelf.go.diff - ┗━ πŸ“ submodule - ┣━ πŸ“ isolated - ┃ ┣━ πŸ†• isolated_Kwargs__no_runtime_type_checking.go - ┃ ┣━ πŸ†• isolated_Kwargs__runtime_type_checks.go - ┃ ┗━ πŸ“„ isolated_Kwargs.go.diff - ┣━ πŸ†• submodule_MyClass__no_runtime_type_checking.go - ┣━ πŸ†• submodule_MyClass__runtime_type_checks.go - ┗━ πŸ“„ submodule_MyClass.go.diff + ┣━ πŸ“ submodule + ┃ ┣━ πŸ“ isolated + ┃ ┃ ┣━ πŸ†• isolated_Kwargs__no_runtime_type_checking.go + ┃ ┃ ┣━ πŸ†• isolated_Kwargs__runtime_type_checks.go + ┃ ┃ ┗━ πŸ“„ isolated_Kwargs.go.diff + ┃ ┣━ πŸ†• submodule_MyClass__no_runtime_type_checking.go + ┃ ┣━ πŸ†• submodule_MyClass__runtime_type_checks.go + ┃ ┗━ πŸ“„ submodule_MyClass.go.diff + ┗━ πŸ“ union + ┣━ πŸ†• union_ConsumesUnion__no_runtime_type_checking.go + ┣━ πŸ†• union_ConsumesUnion__runtime_type_checks.go + ┗━ πŸ“„ union_ConsumesUnion.go.diff `; exports[`Generated code for "jsii-calc": /go/jsiicalc/anonymous/anonymous_UseOptions.go.diff 1`] = ` @@ -34533,3 +34781,78 @@ exports[`Generated code for "jsii-calc": /go/jsiicalc/s +} + `; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union_ConsumesUnion.go.diff 1`] = ` +--- go/jsiicalc/union/union_ConsumesUnion.go --no-runtime-type-checking ++++ go/jsiicalc/union/union_ConsumesUnion.go --runtime-type-checking +@@ -14,10 +14,13 @@ + } + + func ConsumesUnion_UnionType(param interface{}) { + _init_.Initialize() + ++ if err := validateConsumesUnion_UnionTypeParameters(param); err != nil { ++ panic(err) ++ } + _jsii_.StaticInvokeVoid( + "jsii-calc.union.ConsumesUnion", + "unionType", + []interface{}{param}, + ) +`; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union_ConsumesUnion__no_runtime_type_checking.go.diff 1`] = ` +--- go/jsiicalc/union/union_ConsumesUnion__no_runtime_type_checking.go --no-runtime-type-checking ++++ go/jsiicalc/union/union_ConsumesUnion__no_runtime_type_checking.go --runtime-type-checking +@@ -0,0 +1,11 @@ ++//go:build no_runtime_type_checking ++// +build no_runtime_type_checking ++ ++package union ++ ++// Building without runtime type checking enabled, so all the below just return nil ++ ++func validateConsumesUnion_UnionTypeParameters(param interface{}) error { ++ return nil ++} ++ +`; + +exports[`Generated code for "jsii-calc": /go/jsiicalc/union/union_ConsumesUnion__runtime_type_checks.go.diff 1`] = ` +--- go/jsiicalc/union/union_ConsumesUnion__runtime_type_checks.go --no-runtime-type-checking ++++ go/jsiicalc/union/union_ConsumesUnion__runtime_type_checks.go --runtime-type-checking +@@ -0,0 +1,33 @@ ++//go:build !no_runtime_type_checking ++// +build !no_runtime_type_checking ++ ++package union ++ ++import ( ++ "fmt" ++ ++ _jsii_ "github.com/aws/jsii-runtime-go/runtime" ++ ++ "github.com/aws/jsii/jsii-calc/go/scopejsiicalclib" ++) ++ ++func validateConsumesUnion_UnionTypeParameters(param interface{}) error { ++ if param == nil { ++ return fmt.Errorf("parameter param is required, but nil was provided") ++ } ++ switch param.(type) { ++ case IResolvable: ++ // ok ++ case Resolvable: ++ // ok ++ case scopejsiicalclib.IFriendly: ++ // ok ++ default: ++ if !_jsii_.IsAnonymousProxy(param) { ++ return fmt.Errorf("parameter param must be one of the allowed types: IResolvable, Resolvable, scopejsiicalclib.IFriendly; received %#v (a %T)", param, param) ++ } ++ } ++ ++ return nil ++} ++ +`; diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-java.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-java.test.js.snap index a37a2817c5..43dda414da 100644 --- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-java.test.js.snap +++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-java.test.js.snap @@ -1434,6 +1434,9 @@ exports[`Generated code for "@scope/jsii-calc-lib": / 1`] = ` ┃ ┗━ πŸ“ lib ┃ ┣━ πŸ“„ $Module.java ┃ ┣━ πŸ“„ BaseFor2647.java + ┃ ┣━ πŸ“ deprecation_removal + ┃ ┃ ┣━ πŸ“„ IInterface.java + ┃ ┃ ┗━ πŸ“„ InterfaceFactory.java ┃ ┣━ πŸ“„ DiamondLeft.java ┃ ┣━ πŸ“„ DiamondRight.java ┃ ┣━ πŸ“„ EnumFromScopedModule.java @@ -3539,6 +3542,92 @@ public interface StructWithOnlyOptionals extends software.amazon.jsii.JsiiSerial `; +exports[`Generated code for "@scope/jsii-calc-lib": /java/src/main/java/software/amazon/jsii/tests/calculator/lib/deprecation_removal/IInterface.java 1`] = ` +package software.amazon.jsii.tests.calculator.lib.deprecation_removal; + +/** + */ +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.lib.$Module.class, fqn = "@scope/jsii-calc-lib.deprecationRemoval.IInterface") +@software.amazon.jsii.Jsii.Proxy(IInterface.Jsii$Proxy.class) +@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) +@Deprecated +public interface IInterface extends software.amazon.jsii.JsiiSerializable { + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) + @Deprecated + void method(); + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + @software.amazon.jsii.Internal + final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.lib.deprecation_removal.IInterface.Jsii$Default { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { + super(objRef); + } + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) + @Deprecated + @Override + public final void method() { + software.amazon.jsii.Kernel.call(this, "method", software.amazon.jsii.NativeType.VOID); + } + } + + /** + * Internal default implementation for {@link IInterface}. + */ + @software.amazon.jsii.Internal + interface Jsii$Default extends IInterface { + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) + @Deprecated + @Override + default void method() { + software.amazon.jsii.Kernel.call(this, "method", software.amazon.jsii.NativeType.VOID); + } + } +} + +`; + +exports[`Generated code for "@scope/jsii-calc-lib": /java/src/main/java/software/amazon/jsii/tests/calculator/lib/deprecation_removal/InterfaceFactory.java 1`] = ` +package software.amazon.jsii.tests.calculator.lib.deprecation_removal; + +/** + */ +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) +@Deprecated +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.lib.$Module.class, fqn = "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory") +public class InterfaceFactory extends software.amazon.jsii.JsiiObject { + + protected InterfaceFactory(final software.amazon.jsii.JsiiObjectRef objRef) { + super(objRef); + } + + protected InterfaceFactory(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) { + super(initializationMode); + } + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) + @Deprecated + public static @org.jetbrains.annotations.NotNull software.amazon.jsii.tests.calculator.lib.deprecation_removal.IInterface create() { + return software.amazon.jsii.JsiiObject.jsiiStaticCall(software.amazon.jsii.tests.calculator.lib.deprecation_removal.InterfaceFactory.class, "create", software.amazon.jsii.NativeType.forClass(software.amazon.jsii.tests.calculator.lib.deprecation_removal.IInterface.class)); + } +} + +`; + exports[`Generated code for "@scope/jsii-calc-lib": /java/src/main/java/software/amazon/jsii/tests/calculator/lib/package-info.java 1`] = ` /** * @@ -3563,6 +3652,8 @@ exports[`Generated code for "@scope/jsii-calc-lib": /java/src/main/resou @scope/jsii-calc-lib.NumericValue=software.amazon.jsii.tests.calculator.lib.NumericValue @scope/jsii-calc-lib.Operation=software.amazon.jsii.tests.calculator.lib.Operation @scope/jsii-calc-lib.StructWithOnlyOptionals=software.amazon.jsii.tests.calculator.lib.StructWithOnlyOptionals +@scope/jsii-calc-lib.deprecationRemoval.IInterface=software.amazon.jsii.tests.calculator.lib.deprecation_removal.IInterface +@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory=software.amazon.jsii.tests.calculator.lib.deprecation_removal.InterfaceFactory @scope/jsii-calc-lib.submodule.IReflectable=software.amazon.jsii.tests.calculator.custom_submodule_name.IReflectable @scope/jsii-calc-lib.submodule.NestingClass=software.amazon.jsii.tests.calculator.custom_submodule_name.NestingClass @scope/jsii-calc-lib.submodule.NestingClass.NestedClass=software.amazon.jsii.tests.calculator.custom_submodule_name.NestingClass$NestedClass @@ -3898,6 +3989,10 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┃ ┣━ πŸ“„ TwoMethodsWithSimilarCapitalization.java ┃ ┣━ πŸ“„ UmaskCheck.java ┃ ┣━ πŸ“„ UnaryOperation.java + ┃ ┣━ πŸ“ union + ┃ ┃ ┣━ πŸ“„ ConsumesUnion.java + ┃ ┃ ┣━ πŸ“„ IResolvable.java + ┃ ┃ ┗━ πŸ“„ Resolvable.java ┃ ┣━ πŸ“„ UnionProperties.java ┃ ┣━ πŸ“„ UpcasingReflectable.java ┃ ┣━ πŸ“„ UseBundledDependency.java @@ -27588,6 +27683,116 @@ public class ReturnsSpecialParameter extends software.amazon.jsii.JsiiObject { `; +exports[`Generated code for "jsii-calc": /java/src/main/java/software/amazon/jsii/tests/calculator/union/ConsumesUnion.java 1`] = ` +package software.amazon.jsii.tests.calculator.union; + +/** + */ +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.union.ConsumesUnion") +public class ConsumesUnion extends software.amazon.jsii.JsiiObject { + + protected ConsumesUnion(final software.amazon.jsii.JsiiObjectRef objRef) { + super(objRef); + } + + protected ConsumesUnion(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) { + super(initializationMode); + } + + /** + * @param param This parameter is required. + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) + public static void unionType(final @org.jetbrains.annotations.NotNull java.lang.Object param) { + software.amazon.jsii.JsiiObject.jsiiStaticCall(software.amazon.jsii.tests.calculator.union.ConsumesUnion.class, "unionType", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(param, "param is required") }); + } +} + +`; + +exports[`Generated code for "jsii-calc": /java/src/main/java/software/amazon/jsii/tests/calculator/union/IResolvable.java 1`] = ` +package software.amazon.jsii.tests.calculator.union; + +/** + */ +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.union.IResolvable") +@software.amazon.jsii.Jsii.Proxy(IResolvable.Jsii$Proxy.class) +@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) +public interface IResolvable extends software.amazon.jsii.JsiiSerializable { + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) + @org.jetbrains.annotations.NotNull java.lang.Object resolve(); + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + @software.amazon.jsii.Internal + final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.union.IResolvable.Jsii$Default { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { + super(objRef); + } + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) + @Override + public final @org.jetbrains.annotations.NotNull java.lang.Object resolve() { + return software.amazon.jsii.Kernel.call(this, "resolve", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); + } + } + + /** + * Internal default implementation for {@link IResolvable}. + */ + @software.amazon.jsii.Internal + interface Jsii$Default extends IResolvable { + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) + @Override + default @org.jetbrains.annotations.NotNull java.lang.Object resolve() { + return software.amazon.jsii.Kernel.call(this, "resolve", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); + } + } +} + +`; + +exports[`Generated code for "jsii-calc": /java/src/main/java/software/amazon/jsii/tests/calculator/union/Resolvable.java 1`] = ` +package software.amazon.jsii.tests.calculator.union; + +/** + */ +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.union.Resolvable") +public class Resolvable extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.union.IResolvable { + + protected Resolvable(final software.amazon.jsii.JsiiObjectRef objRef) { + super(objRef); + } + + protected Resolvable(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) { + super(initializationMode); + } + + /** + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) + @Override + public @org.jetbrains.annotations.NotNull java.lang.Object resolve() { + return software.amazon.jsii.Kernel.call(this, "resolve", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); + } +} + +`; + exports[`Generated code for "jsii-calc": /java/src/main/resources/software/amazon/jsii/tests/calculator/$Module.txt 1`] = ` jsii-calc.AbstractClass=software.amazon.jsii.tests.calculator.AbstractClass jsii-calc.AbstractClassBase=software.amazon.jsii.tests.calculator.AbstractClassBase @@ -27870,6 +28075,9 @@ jsii-calc.submodule.nested_submodule.Namespaced=software.amazon.jsii.tests.calcu jsii-calc.submodule.nested_submodule.deeplyNested.INamespaced=software.amazon.jsii.tests.calculator.submodule.nested_submodule.deeply_nested.INamespaced jsii-calc.submodule.param.SpecialParameter=software.amazon.jsii.tests.calculator.submodule.param.SpecialParameter jsii-calc.submodule.returnsparam.ReturnsSpecialParameter=software.amazon.jsii.tests.calculator.submodule.returnsparam.ReturnsSpecialParameter +jsii-calc.union.ConsumesUnion=software.amazon.jsii.tests.calculator.union.ConsumesUnion +jsii-calc.union.IResolvable=software.amazon.jsii.tests.calculator.union.IResolvable +jsii-calc.union.Resolvable=software.amazon.jsii.tests.calculator.union.Resolvable `; @@ -27893,6 +28101,8 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┣━ πŸ“„ ClassWithNestedUnion.java.diff ┣━ πŸ“„ ConfusingToJackson.java.diff ┣━ πŸ“„ StructUnionConsumer.java.diff + ┣━ πŸ“ union + ┃ ┗━ πŸ“„ ConsumesUnion.java.diff ┗━ πŸ“„ VariadicTypeUnion.java.diff `; @@ -28345,3 +28555,31 @@ exports[`Generated code for "jsii-calc": /java/src/main /** * @param which This parameter is required. `; + +exports[`Generated code for "jsii-calc": /java/src/main/java/software/amazon/jsii/tests/calculator/union/ConsumesUnion.java.diff 1`] = ` +--- java/src/main/java/software/amazon/jsii/tests/calculator/union/ConsumesUnion.java --no-runtime-type-checking ++++ java/src/main/java/software/amazon/jsii/tests/calculator/union/ConsumesUnion.java --runtime-type-checking +@@ -18,8 +18,22 @@ + /** + * @param param This parameter is required. + */ + @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) + public static void unionType(final @org.jetbrains.annotations.NotNull java.lang.Object param) { ++ if (software.amazon.jsii.Configuration.getRuntimeTypeChecking()) { ++ if ( ++ !(param instanceof software.amazon.jsii.tests.calculator.union.IResolvable) ++ && !(param instanceof software.amazon.jsii.tests.calculator.union.Resolvable) ++ && !(param instanceof software.amazon.jsii.tests.calculator.lib.IFriendly) ++ && !(param.getClass().equals(software.amazon.jsii.JsiiObject.class)) ++ ) { ++ throw new IllegalArgumentException( ++ new java.lang.StringBuilder("Expected ") ++ .append("param") ++ .append(" to be one of: software.amazon.jsii.tests.calculator.union.IResolvable, software.amazon.jsii.tests.calculator.union.Resolvable, software.amazon.jsii.tests.calculator.lib.IFriendly; received ") ++ .append(param.getClass()).toString()); ++ } ++ } + software.amazon.jsii.JsiiObject.jsiiStaticCall(software.amazon.jsii.tests.calculator.union.ConsumesUnion.class, "unionType", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(param, "param is required") }); + } + } +`; diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap index d460f782a1..41546e4ee8 100644 --- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap +++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap @@ -1056,6 +1056,8 @@ exports[`Generated code for "@scope/jsii-calc-lib": / 1`] = ` ┃ ┗━ πŸ“„ jsii-calc-lib@0.0.0.jsii.tgz ┣━ πŸ“ custom_submodule_name ┃ ┗━ πŸ“„ __init__.py + ┣━ πŸ“ deprecation_removal + ┃ ┗━ πŸ“„ __init__.py ┗━ πŸ“„ py.typed `; @@ -1320,7 +1322,8 @@ kwargs = json.loads( "packages": [ "scope.jsii_calc_lib", "scope.jsii_calc_lib._jsii", - "scope.jsii_calc_lib.custom_submodule_name" + "scope.jsii_calc_lib.custom_submodule_name", + "scope.jsii_calc_lib.deprecation_removal" ], "package_data": { "scope.jsii_calc_lib._jsii": [ @@ -1944,12 +1947,14 @@ __all__ = [ "Operation", "StructWithOnlyOptionals", "custom_submodule_name", + "deprecation_removal", ] publication.publish() # Loading modules to ensure their types are registered with the jsii runtime library from . import custom_submodule_name +from . import deprecation_removal `; @@ -2196,6 +2201,80 @@ publication.publish() `; +exports[`Generated code for "@scope/jsii-calc-lib": /python/src/scope/jsii_calc_lib/deprecation_removal/__init__.py 1`] = ` +import abc +import builtins +import datetime +import enum +import typing + +import jsii +import publication +import typing_extensions + +from typeguard import check_type + +from .._jsii import * + + +@jsii.interface(jsii_type="@scope/jsii-calc-lib.deprecationRemoval.IInterface") +class IInterface(typing_extensions.Protocol): + ''' + :stability: deprecated + ''' + + @jsii.member(jsii_name="method") + def method(self) -> None: + ''' + :stability: deprecated + ''' + ... + + +class _IInterfaceProxy: + ''' + :stability: deprecated + ''' + + __jsii_type__: typing.ClassVar[str] = "@scope/jsii-calc-lib.deprecationRemoval.IInterface" + + @jsii.member(jsii_name="method") + def method(self) -> None: + ''' + :stability: deprecated + ''' + return typing.cast(None, jsii.invoke(self, "method", [])) + +# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface +typing.cast(typing.Any, IInterface).__jsii_proxy_class__ = lambda : _IInterfaceProxy + + +class InterfaceFactory( + metaclass=jsii.JSIIMeta, + jsii_type="@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory", +): + ''' + :stability: deprecated + ''' + + @jsii.member(jsii_name="create") + @builtins.classmethod + def create(cls) -> IInterface: + ''' + :stability: deprecated + ''' + return typing.cast(IInterface, jsii.sinvoke(cls, "create", [])) + + +__all__ = [ + "IInterface", + "InterfaceFactory", +] + +publication.publish() + +`; + exports[`Generated code for "@scope/jsii-calc-lib": /python/src/scope/jsii_calc_lib/py.typed 1`] = ` @@ -2437,22 +2516,24 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┣━ πŸ“„ py.typed ┣━ πŸ“ python_self ┃ ┗━ πŸ“„ __init__.py - ┗━ πŸ“ submodule - ┣━ πŸ“„ __init__.py - ┣━ πŸ“ back_references - ┃ ┗━ πŸ“„ __init__.py - ┣━ πŸ“ child - ┃ ┗━ πŸ“„ __init__.py - ┣━ πŸ“ isolated - ┃ ┗━ πŸ“„ __init__.py - ┣━ πŸ“ nested_submodule - ┃ ┣━ πŸ“„ __init__.py - ┃ ┗━ πŸ“ deeply_nested - ┃ ┗━ πŸ“„ __init__.py - ┣━ πŸ“ param - ┃ ┗━ πŸ“„ __init__.py - ┗━ πŸ“ returnsparam - ┗━ πŸ“„ __init__.py + ┣━ πŸ“ submodule + ┃ ┣━ πŸ“„ __init__.py + ┃ ┣━ πŸ“ back_references + ┃ ┃ ┗━ πŸ“„ __init__.py + ┃ ┣━ πŸ“ child + ┃ ┃ ┗━ πŸ“„ __init__.py + ┃ ┣━ πŸ“ isolated + ┃ ┃ ┗━ πŸ“„ __init__.py + ┃ ┣━ πŸ“ nested_submodule + ┃ ┃ ┣━ πŸ“„ __init__.py + ┃ ┃ ┗━ πŸ“ deeply_nested + ┃ ┃ ┗━ πŸ“„ __init__.py + ┃ ┣━ πŸ“ param + ┃ ┃ ┗━ πŸ“„ __init__.py + ┃ ┗━ πŸ“ returnsparam + ┃ ┗━ πŸ“„ __init__.py + ┗━ πŸ“ union + ┗━ πŸ“„ __init__.py `; exports[`Generated code for "jsii-calc": /python/LICENSE 1`] = ` @@ -2771,7 +2852,8 @@ kwargs = json.loads( "jsii_calc.submodule.nested_submodule", "jsii_calc.submodule.nested_submodule.deeply_nested", "jsii_calc.submodule.param", - "jsii_calc.submodule.returnsparam" + "jsii_calc.submodule.returnsparam", + "jsii_calc.union" ], "package_data": { "jsii_calc._jsii": [ @@ -11149,6 +11231,7 @@ __all__ = [ "onlystatic", "python_self", "submodule", + "union", ] publication.publish() @@ -11172,6 +11255,7 @@ from . import nodirect from . import onlystatic from . import python_self from . import submodule +from . import union `; @@ -13642,6 +13726,72 @@ publication.publish() `; +exports[`Generated code for "jsii-calc": /python/src/jsii_calc/union/__init__.py 1`] = ` +import abc +import builtins +import datetime +import enum +import typing + +import jsii +import publication +import typing_extensions + +from typeguard import check_type + +from .._jsii import * + +import scope.jsii_calc_lib + + +class ConsumesUnion(metaclass=jsii.JSIIMeta, jsii_type="jsii-calc.union.ConsumesUnion"): + @jsii.member(jsii_name="unionType") + @builtins.classmethod + def union_type( + cls, + param: typing.Union["IResolvable", "Resolvable", scope.jsii_calc_lib.IFriendly], + ) -> None: + ''' + :param param: - + ''' + return typing.cast(None, jsii.sinvoke(cls, "unionType", [param])) + + +@jsii.interface(jsii_type="jsii-calc.union.IResolvable") +class IResolvable(typing_extensions.Protocol): + @jsii.member(jsii_name="resolve") + def resolve(self) -> typing.Any: + ... + + +class _IResolvableProxy: + __jsii_type__: typing.ClassVar[str] = "jsii-calc.union.IResolvable" + + @jsii.member(jsii_name="resolve") + def resolve(self) -> typing.Any: + return typing.cast(typing.Any, jsii.invoke(self, "resolve", [])) + +# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface +typing.cast(typing.Any, IResolvable).__jsii_proxy_class__ = lambda : _IResolvableProxy + + +@jsii.implements(IResolvable) +class Resolvable(metaclass=jsii.JSIIMeta, jsii_type="jsii-calc.union.Resolvable"): + @jsii.member(jsii_name="resolve") + def resolve(self) -> typing.Any: + return typing.cast(typing.Any, jsii.invoke(self, "resolve", [])) + + +__all__ = [ + "ConsumesUnion", + "IResolvable", + "Resolvable", +] + +publication.publish() + +`; + exports[`Generated code for "jsii-calc": / 1`] = ` ┗━ πŸ“ python @@ -13680,14 +13830,16 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┃ ┗━ πŸ“„ __init__.py.diff ┣━ πŸ“ python_self ┃ ┗━ πŸ“„ __init__.py.diff - ┗━ πŸ“ submodule - ┣━ πŸ“„ __init__.py.diff - ┣━ πŸ“ back_references - ┃ ┗━ πŸ“„ __init__.py.diff - ┣━ πŸ“ child - ┃ ┗━ πŸ“„ __init__.py.diff - ┗━ πŸ“ param - ┗━ πŸ“„ __init__.py.diff + ┣━ πŸ“ submodule + ┃ ┣━ πŸ“„ __init__.py.diff + ┃ ┣━ πŸ“ back_references + ┃ ┃ ┗━ πŸ“„ __init__.py.diff + ┃ ┣━ πŸ“ child + ┃ ┃ ┗━ πŸ“„ __init__.py.diff + ┃ ┗━ πŸ“ param + ┃ ┗━ πŸ“„ __init__.py.diff + ┗━ πŸ“ union + ┗━ πŸ“„ __init__.py.diff `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/__init__.py.diff 1`] = ` @@ -17364,3 +17516,22 @@ exports[`Generated code for "jsii-calc": /python/src/js @builtins.property `; + +exports[`Generated code for "jsii-calc": /python/src/jsii_calc/union/__init__.py.diff 1`] = ` +--- python/src/jsii_calc/union/__init__.py --no-runtime-type-checking ++++ python/src/jsii_calc/union/__init__.py --runtime-type-checking +@@ -23,10 +23,13 @@ + param: typing.Union["IResolvable", "Resolvable", scope.jsii_calc_lib.IFriendly], + ) -> None: + ''' + :param param: - + ''' ++ if __debug__: ++ type_hints = typing.get_type_hints(ConsumesUnion.union_type) ++ check_type(argname="argument param", value=param, expected_type=type_hints["param"]) + return typing.cast(None, jsii.sinvoke(cls, "unionType", [param])) + + + @jsii.interface(jsii_type="jsii-calc.union.IResolvable") + class IResolvable(typing_extensions.Protocol): +`; diff --git a/packages/jsii-reflect/test/__snapshots__/jsii-tree.test.js.snap b/packages/jsii-reflect/test/__snapshots__/jsii-tree.test.js.snap index cd6aaf77b4..c8be186d6e 100644 --- a/packages/jsii-reflect/test/__snapshots__/jsii-tree.test.js.snap +++ b/packages/jsii-reflect/test/__snapshots__/jsii-tree.test.js.snap @@ -445,139 +445,159 @@ exports[`jsii-tree --all 1`] = ` β”‚ β”‚ β”‚ └─┬ static staticMethod() method (stable) β”‚ β”‚ β”‚ β”œβ”€β”€ static β”‚ β”‚ β”‚ └── returns: string - β”‚ β”‚ └─┬ submodule - β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ interface MyClassReference (stable) - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └─┬ reference property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.MyClass - β”‚ β”‚ β”‚ β”œβ”€β”¬ child - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class InnerClass (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ static staticProp property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ const - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class OuterClass (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ innerClass property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.InnerClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interfaces - β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── SomeStruct - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ extra property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface SomeStruct (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ prop property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeEnum - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface Structure (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ bool property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: boolean - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Awesomeness (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └── AWESOME (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Goodness (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ PRETTY_GOOD (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ REALLY_GOOD (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └── AMAZINGLY_GOOD (stable) - β”‚ β”‚ β”‚ β”‚ └─┬ enum SomeEnum (stable) - β”‚ β”‚ β”‚ β”‚ └── SOME (stable) - β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Kwargs (stable) - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └─┬ static method(props) method (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ props - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional - β”‚ β”‚ β”‚ β”‚ └── returns: boolean - β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface INamespaced (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ definedAt property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property (stable) - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ β”‚ └─┬ goodness property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness - β”‚ β”‚ β”‚ β”œβ”€β”¬ param - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ interface SpecialParameter (stable) - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └─┬ value property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ └─┬ returnsparam - β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ └─┬ class ReturnsSpecialParameter (stable) - β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer (stable) - β”‚ β”‚ β”‚ └─┬ returnsSpecialParam() method (stable) - β”‚ β”‚ β”‚ └── returns: jsii-calc.submodule.param.SpecialParameter + β”‚ β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface MyClassReference (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ reference property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.MyClass + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ child + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class InnerClass (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ static staticProp property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ const + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class OuterClass (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ innerClass property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interfaces + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ extra property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface SomeStruct (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ prop property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeEnum + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface Structure (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ bool property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: boolean + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Awesomeness (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── AWESOME (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Goodness (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ PRETTY_GOOD (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ REALLY_GOOD (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── AMAZINGLY_GOOD (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ enum SomeEnum (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ └── SOME (stable) + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Kwargs (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ static method(props) method (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ props + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional + β”‚ β”‚ β”‚ β”‚ β”‚ └── returns: boolean + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface INamespaced (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ definedAt property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ goodness property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ param + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface SpecialParameter (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ value property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ └─┬ returnsparam + β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ └─┬ class ReturnsSpecialParameter (stable) + β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer (stable) + β”‚ β”‚ β”‚ β”‚ └─┬ returnsSpecialParam() method (stable) + β”‚ β”‚ β”‚ β”‚ └── returns: jsii-calc.submodule.param.SpecialParameter + β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”œβ”€β”¬ class MyClass (stable) + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced + β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ (props) initializer (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ parameters + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ props + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ methodWithSpecialParam(param) method (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ param + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.param.SpecialParameter + β”‚ β”‚ β”‚ β”‚ β”‚ └── returns: string + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ awesomeness property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Awesomeness + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ goodness property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ props property (stable) + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct + β”‚ β”‚ β”‚ β”‚ └─┬ allTypes property (stable) + β”‚ β”‚ β”‚ β”‚ └── type: Optional + β”‚ β”‚ β”‚ └─┬ interface Default (stable) + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └─┬ foo property (stable) + β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ └── type: number + β”‚ β”‚ └─┬ union β”‚ β”‚ └─┬ types - β”‚ β”‚ β”œβ”€β”¬ class MyClass (stable) - β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced + β”‚ β”‚ β”œβ”€β”¬ class ConsumesUnion (stable) β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”œβ”€β”¬ (props) initializer (stable) - β”‚ β”‚ β”‚ β”‚ └─┬ parameters - β”‚ β”‚ β”‚ β”‚ └─┬ props - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct - β”‚ β”‚ β”‚ β”œβ”€β”¬ methodWithSpecialParam(param) method (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ param - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.param.SpecialParameter - β”‚ β”‚ β”‚ β”‚ └── returns: string - β”‚ β”‚ β”‚ β”œβ”€β”¬ awesomeness property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Awesomeness - β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ β”œβ”€β”¬ goodness property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness - β”‚ β”‚ β”‚ β”œβ”€β”¬ props property (stable) - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct - β”‚ β”‚ β”‚ └─┬ allTypes property (stable) - β”‚ β”‚ β”‚ └── type: Optional - β”‚ β”‚ └─┬ interface Default (stable) + β”‚ β”‚ β”‚ └─┬ static unionType(param) method (stable) + β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters + β”‚ β”‚ β”‚ β”‚ └─┬ param + β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.union.IResolvable | jsii-calc.union.Resolvable | @scope/jsii-calc-lib.IFriendly + β”‚ β”‚ β”‚ └── returns: void + β”‚ β”‚ β”œβ”€β”¬ class Resolvable (stable) + β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: IResolvable + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └─┬ resolve() method (stable) + β”‚ β”‚ β”‚ └── returns: any + β”‚ β”‚ └─┬ interface IResolvable (stable) β”‚ β”‚ └─┬ members - β”‚ β”‚ └─┬ foo property (stable) + β”‚ β”‚ └─┬ resolve() method (stable) β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ └── type: number + β”‚ β”‚ └── returns: any β”‚ └─┬ types β”‚ β”œβ”€β”¬ class AbstractClass (stable) β”‚ β”‚ β”œβ”€β”€ base: AbstractClassBase @@ -3358,6 +3378,18 @@ exports[`jsii-tree --all 1`] = ` β”‚ β”œβ”€β”€ @scope/jsii-calc-base β”‚ └── @scope/jsii-calc-base-of-base β”œβ”€β”¬ submodules + β”‚ β”œβ”€β”¬ deprecationRemoval + β”‚ β”‚ └─┬ types + β”‚ β”‚ β”œβ”€β”¬ class InterfaceFactory (deprecated) + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └─┬ static create() method (deprecated) + β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ └── returns: @scope/jsii-calc-lib.deprecationRemoval.IInterface + β”‚ β”‚ └─┬ interface IInterface (deprecated) + β”‚ β”‚ └─┬ members + β”‚ β”‚ └─┬ method() method (deprecated) + β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ └── returns: void β”‚ └─┬ submodule β”‚ └─┬ types β”‚ β”œβ”€β”¬ class NestingClass (deprecated) @@ -3648,44 +3680,50 @@ exports[`jsii-tree --inheritance 1`] = ` β”‚ β”‚ β”œβ”€β”¬ onlystatic β”‚ β”‚ β”‚ └─┬ types β”‚ β”‚ β”‚ └── class OnlyStaticMethods - β”‚ β”‚ └─┬ submodule - β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── interface MyClassReference - β”‚ β”‚ β”‚ β”œβ”€β”¬ child - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class InnerClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class OuterClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interfaces - β”‚ β”‚ β”‚ β”‚ β”‚ └── SomeStruct - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface SomeStruct - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface Structure - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Awesomeness - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Goodness - β”‚ β”‚ β”‚ β”‚ └── enum SomeEnum - β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── class Kwargs - β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”‚ └── interface INamespaced - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced - β”‚ β”‚ β”‚ β”‚ └── interfaces: INamespaced - β”‚ β”‚ β”‚ β”œβ”€β”¬ param - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── interface SpecialParameter - β”‚ β”‚ β”‚ └─┬ returnsparam - β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ └── class ReturnsSpecialParameter + β”‚ β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── interface MyClassReference + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ child + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class OuterClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interfaces + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface Structure + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Awesomeness + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Goodness + β”‚ β”‚ β”‚ β”‚ β”‚ └── enum SomeEnum + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── class Kwargs + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── interface INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └── interfaces: INamespaced + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ param + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── interface SpecialParameter + β”‚ β”‚ β”‚ β”‚ └─┬ returnsparam + β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ └── class ReturnsSpecialParameter + β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”œβ”€β”¬ class MyClass + β”‚ β”‚ β”‚ β”‚ └── interfaces: INamespaced + β”‚ β”‚ β”‚ └── interface Default + β”‚ β”‚ └─┬ union β”‚ β”‚ └─┬ types - β”‚ β”‚ β”œβ”€β”¬ class MyClass - β”‚ β”‚ β”‚ └── interfaces: INamespaced - β”‚ β”‚ └── interface Default + β”‚ β”‚ β”œβ”€β”€ class ConsumesUnion + β”‚ β”‚ β”œβ”€β”¬ class Resolvable + β”‚ β”‚ β”‚ └── interfaces: IResolvable + β”‚ β”‚ └── interface IResolvable β”‚ └─┬ types β”‚ β”œβ”€β”¬ class AbstractClass β”‚ β”‚ β”œβ”€β”€ base: AbstractClassBase @@ -3985,6 +4023,10 @@ exports[`jsii-tree --inheritance 1`] = ` β”‚ └── interface VeryBaseProps └─┬ @scope/jsii-calc-lib β”œβ”€β”¬ submodules + β”‚ β”œβ”€β”¬ deprecationRemoval + β”‚ β”‚ └─┬ types + β”‚ β”‚ β”œβ”€β”€ class InterfaceFactory + β”‚ β”‚ └── interface IInterface β”‚ └─┬ submodule β”‚ └─┬ types β”‚ β”œβ”€β”€ class NestingClass @@ -4259,81 +4301,92 @@ exports[`jsii-tree --members 1`] = ` β”‚ β”‚ β”‚ └─┬ class OnlyStaticMethods β”‚ β”‚ β”‚ └─┬ members β”‚ β”‚ β”‚ └── static staticMethod() method - β”‚ β”‚ └─┬ submodule - β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ interface MyClassReference - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └── reference property - β”‚ β”‚ β”‚ β”œβ”€β”¬ child - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class InnerClass - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer - β”‚ β”‚ β”‚ β”‚ β”‚ └── static staticProp property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class OuterClass - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer - β”‚ β”‚ β”‚ β”‚ β”‚ └── innerClass property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └── extra property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface SomeStruct - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └── prop property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface Structure - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └── bool property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Awesomeness - β”‚ β”‚ β”‚ β”‚ β”‚ └── AWESOME - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Goodness - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ PRETTY_GOOD - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ REALLY_GOOD - β”‚ β”‚ β”‚ β”‚ β”‚ └── AMAZINGLY_GOOD - β”‚ β”‚ β”‚ β”‚ └─┬ enum SomeEnum - β”‚ β”‚ β”‚ β”‚ └── SOME - β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Kwargs - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └── static method(props) method - β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface INamespaced - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └── definedAt property - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ definedAt property - β”‚ β”‚ β”‚ β”‚ └── goodness property - β”‚ β”‚ β”‚ β”œβ”€β”¬ param - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ interface SpecialParameter - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └── value property - β”‚ β”‚ β”‚ └─┬ returnsparam - β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ └─┬ class ReturnsSpecialParameter - β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer - β”‚ β”‚ β”‚ └── returnsSpecialParam() method + β”‚ β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface MyClassReference + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └── reference property + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ child + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── static staticProp property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class OuterClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── innerClass property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── extra property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── prop property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface Structure + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── bool property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Awesomeness + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── AWESOME + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Goodness + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ PRETTY_GOOD + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ REALLY_GOOD + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── AMAZINGLY_GOOD + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ enum SomeEnum + β”‚ β”‚ β”‚ β”‚ β”‚ └── SOME + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Kwargs + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └── static method(props) method + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── definedAt property + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ definedAt property + β”‚ β”‚ β”‚ β”‚ β”‚ └── goodness property + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ param + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface SpecialParameter + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └── value property + β”‚ β”‚ β”‚ β”‚ └─┬ returnsparam + β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ └─┬ class ReturnsSpecialParameter + β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer + β”‚ β”‚ β”‚ β”‚ └── returnsSpecialParam() method + β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”œβ”€β”¬ class MyClass + β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ (props) initializer + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ methodWithSpecialParam(param) method + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ awesomeness property + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ definedAt property + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ goodness property + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ props property + β”‚ β”‚ β”‚ β”‚ └── allTypes property + β”‚ β”‚ β”‚ └─┬ interface Default + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └── foo property + β”‚ β”‚ └─┬ union β”‚ β”‚ └─┬ types - β”‚ β”‚ β”œβ”€β”¬ class MyClass + β”‚ β”‚ β”œβ”€β”¬ class ConsumesUnion β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”œβ”€β”€ (props) initializer - β”‚ β”‚ β”‚ β”œβ”€β”€ methodWithSpecialParam(param) method - β”‚ β”‚ β”‚ β”œβ”€β”€ awesomeness property - β”‚ β”‚ β”‚ β”œβ”€β”€ definedAt property - β”‚ β”‚ β”‚ β”œβ”€β”€ goodness property - β”‚ β”‚ β”‚ β”œβ”€β”€ props property - β”‚ β”‚ β”‚ └── allTypes property - β”‚ β”‚ └─┬ interface Default + β”‚ β”‚ β”‚ └── static unionType(param) method + β”‚ β”‚ β”œβ”€β”¬ class Resolvable + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └── resolve() method + β”‚ β”‚ └─┬ interface IResolvable β”‚ β”‚ └─┬ members - β”‚ β”‚ └── foo property + β”‚ β”‚ └── resolve() method β”‚ └─┬ types β”‚ β”œβ”€β”¬ class AbstractClass β”‚ β”‚ └─┬ members @@ -5531,6 +5584,14 @@ exports[`jsii-tree --members 1`] = ` β”‚ └── foo property └─┬ @scope/jsii-calc-lib β”œβ”€β”¬ submodules + β”‚ β”œβ”€β”¬ deprecationRemoval + β”‚ β”‚ └─┬ types + β”‚ β”‚ β”œβ”€β”¬ class InterfaceFactory + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └── static create() method + β”‚ β”‚ └─┬ interface IInterface + β”‚ β”‚ └─┬ members + β”‚ β”‚ └── method() method β”‚ └─┬ submodule β”‚ └─┬ types β”‚ β”œβ”€β”¬ class NestingClass @@ -5639,20 +5700,22 @@ exports[`jsii-tree --signatures 1`] = ` β”‚ β”‚ β”œβ”€β”€ sub1 β”‚ β”‚ └── sub2 β”‚ β”œβ”€β”€ onlystatic - β”‚ └─┬ submodule - β”‚ └─┬ submodules - β”‚ β”œβ”€β”€ back_references - β”‚ β”œβ”€β”€ child - β”‚ β”œβ”€β”€ isolated - β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ └─┬ submodules - β”‚ β”‚ └── deeplyNested - β”‚ β”œβ”€β”€ param - β”‚ └── returnsparam + β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”œβ”€β”€ back_references + β”‚ β”‚ β”œβ”€β”€ child + β”‚ β”‚ β”œβ”€β”€ isolated + β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”‚ └── deeplyNested + β”‚ β”‚ β”œβ”€β”€ param + β”‚ β”‚ └── returnsparam + β”‚ └── union β”œβ”€β”€ @scope/jsii-calc-base β”œβ”€β”€ @scope/jsii-calc-base-of-base └─┬ @scope/jsii-calc-lib └─┬ submodules + β”œβ”€β”€ deprecationRemoval └── submodule " `; @@ -5763,40 +5826,45 @@ exports[`jsii-tree --types 1`] = ` β”‚ β”‚ β”œβ”€β”¬ onlystatic β”‚ β”‚ β”‚ └─┬ types β”‚ β”‚ β”‚ └── class OnlyStaticMethods - β”‚ β”‚ └─┬ submodule - β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── interface MyClassReference - β”‚ β”‚ β”‚ β”œβ”€β”¬ child - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class InnerClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class OuterClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface KwargsProps - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface SomeStruct - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface Structure - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Awesomeness - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Goodness - β”‚ β”‚ β”‚ β”‚ └── enum SomeEnum - β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── class Kwargs - β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”‚ └── interface INamespaced - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── class Namespaced - β”‚ β”‚ β”‚ β”œβ”€β”¬ param - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── interface SpecialParameter - β”‚ β”‚ β”‚ └─┬ returnsparam - β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ └── class ReturnsSpecialParameter + β”‚ β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── interface MyClassReference + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ child + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class OuterClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface KwargsProps + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface Structure + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Awesomeness + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Goodness + β”‚ β”‚ β”‚ β”‚ β”‚ └── enum SomeEnum + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── class Kwargs + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── interface INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── class Namespaced + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ param + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── interface SpecialParameter + β”‚ β”‚ β”‚ β”‚ └─┬ returnsparam + β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ └── class ReturnsSpecialParameter + β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”œβ”€β”€ class MyClass + β”‚ β”‚ β”‚ └── interface Default + β”‚ β”‚ └─┬ union β”‚ β”‚ └─┬ types - β”‚ β”‚ β”œβ”€β”€ class MyClass - β”‚ β”‚ └── interface Default + β”‚ β”‚ β”œβ”€β”€ class ConsumesUnion + β”‚ β”‚ β”œβ”€β”€ class Resolvable + β”‚ β”‚ └── interface IResolvable β”‚ └─┬ types β”‚ β”œβ”€β”€ class AbstractClass β”‚ β”œβ”€β”€ class AbstractClassBase @@ -6031,6 +6099,10 @@ exports[`jsii-tree --types 1`] = ` β”‚ └── interface VeryBaseProps └─┬ @scope/jsii-calc-lib β”œβ”€β”¬ submodules + β”‚ β”œβ”€β”¬ deprecationRemoval + β”‚ β”‚ └─┬ types + β”‚ β”‚ β”œβ”€β”€ class InterfaceFactory + β”‚ β”‚ └── interface IInterface β”‚ └─┬ submodule β”‚ └─┬ types β”‚ β”œβ”€β”€ class NestingClass @@ -6089,20 +6161,22 @@ exports[`jsii-tree 1`] = ` β”‚ β”‚ β”œβ”€β”€ sub1 β”‚ β”‚ └── sub2 β”‚ β”œβ”€β”€ onlystatic - β”‚ └─┬ submodule - β”‚ └─┬ submodules - β”‚ β”œβ”€β”€ back_references - β”‚ β”œβ”€β”€ child - β”‚ β”œβ”€β”€ isolated - β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ └─┬ submodules - β”‚ β”‚ └── deeplyNested - β”‚ β”œβ”€β”€ param - β”‚ └── returnsparam + β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”œβ”€β”€ back_references + β”‚ β”‚ β”œβ”€β”€ child + β”‚ β”‚ β”œβ”€β”€ isolated + β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”‚ └── deeplyNested + β”‚ β”‚ β”œβ”€β”€ param + β”‚ β”‚ └── returnsparam + β”‚ └── union β”œβ”€β”€ @scope/jsii-calc-base β”œβ”€β”€ @scope/jsii-calc-base-of-base └─┬ @scope/jsii-calc-lib └─┬ submodules + β”œβ”€β”€ deprecationRemoval └── submodule " `; diff --git a/packages/jsii-reflect/test/__snapshots__/tree.test.js.snap b/packages/jsii-reflect/test/__snapshots__/tree.test.js.snap index e5fcf52c5a..a349bff7b0 100644 --- a/packages/jsii-reflect/test/__snapshots__/tree.test.js.snap +++ b/packages/jsii-reflect/test/__snapshots__/tree.test.js.snap @@ -34,20 +34,22 @@ exports[`defaults 1`] = ` β”‚ β”‚ β”œβ”€β”€ sub1 β”‚ β”‚ └── sub2 β”‚ β”œβ”€β”€ onlystatic - β”‚ └─┬ submodule - β”‚ └─┬ submodules - β”‚ β”œβ”€β”€ back_references - β”‚ β”œβ”€β”€ child - β”‚ β”œβ”€β”€ isolated - β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ └─┬ submodules - β”‚ β”‚ └── deeplyNested - β”‚ β”œβ”€β”€ param - β”‚ └── returnsparam + β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”œβ”€β”€ back_references + β”‚ β”‚ β”œβ”€β”€ child + β”‚ β”‚ β”œβ”€β”€ isolated + β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”‚ └── deeplyNested + β”‚ β”‚ β”œβ”€β”€ param + β”‚ β”‚ └── returnsparam + β”‚ └── union β”œβ”€β”€ @scope/jsii-calc-base β”œβ”€β”€ @scope/jsii-calc-base-of-base └─┬ @scope/jsii-calc-lib └─┬ submodules + β”œβ”€β”€ deprecationRemoval └── submodule " `; @@ -86,20 +88,22 @@ exports[`inheritance 1`] = ` β”‚ β”‚ β”œβ”€β”€ sub1 β”‚ β”‚ └── sub2 β”‚ β”œβ”€β”€ onlystatic - β”‚ └─┬ submodule - β”‚ └─┬ submodules - β”‚ β”œβ”€β”€ back_references - β”‚ β”œβ”€β”€ child - β”‚ β”œβ”€β”€ isolated - β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ └─┬ submodules - β”‚ β”‚ └── deeplyNested - β”‚ β”œβ”€β”€ param - β”‚ └── returnsparam + β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”œβ”€β”€ back_references + β”‚ β”‚ β”œβ”€β”€ child + β”‚ β”‚ β”œβ”€β”€ isolated + β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”‚ └── deeplyNested + β”‚ β”‚ β”œβ”€β”€ param + β”‚ β”‚ └── returnsparam + β”‚ └── union β”œβ”€β”€ @scope/jsii-calc-base β”œβ”€β”€ @scope/jsii-calc-base-of-base └─┬ @scope/jsii-calc-lib └─┬ submodules + β”œβ”€β”€ deprecationRemoval └── submodule " `; @@ -138,20 +142,22 @@ exports[`members 1`] = ` β”‚ β”‚ β”œβ”€β”€ sub1 β”‚ β”‚ └── sub2 β”‚ β”œβ”€β”€ onlystatic - β”‚ └─┬ submodule - β”‚ └─┬ submodules - β”‚ β”œβ”€β”€ back_references - β”‚ β”œβ”€β”€ child - β”‚ β”œβ”€β”€ isolated - β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ └─┬ submodules - β”‚ β”‚ └── deeplyNested - β”‚ β”œβ”€β”€ param - β”‚ └── returnsparam + β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”œβ”€β”€ back_references + β”‚ β”‚ β”œβ”€β”€ child + β”‚ β”‚ β”œβ”€β”€ isolated + β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”‚ └── deeplyNested + β”‚ β”‚ β”œβ”€β”€ param + β”‚ β”‚ └── returnsparam + β”‚ └── union β”œβ”€β”€ @scope/jsii-calc-base β”œβ”€β”€ @scope/jsii-calc-base-of-base └─┬ @scope/jsii-calc-lib └─┬ submodules + β”œβ”€β”€ deprecationRemoval └── submodule " `; @@ -601,139 +607,159 @@ exports[`showAll 1`] = ` β”‚ β”‚ β”‚ └─┬ static staticMethod() method β”‚ β”‚ β”‚ β”œβ”€β”€ static β”‚ β”‚ β”‚ └── returns: string - β”‚ β”‚ └─┬ submodule - β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ interface MyClassReference - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └─┬ reference property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.MyClass - β”‚ β”‚ β”‚ β”œβ”€β”¬ child - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class InnerClass - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ static staticProp property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ const - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class OuterClass - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ innerClass property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.InnerClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interfaces - β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── SomeStruct - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ extra property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface SomeStruct - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ prop property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeEnum - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface Structure - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ bool property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: boolean - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Awesomeness - β”‚ β”‚ β”‚ β”‚ β”‚ └── AWESOME - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Goodness - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ PRETTY_GOOD - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ REALLY_GOOD - β”‚ β”‚ β”‚ β”‚ β”‚ └── AMAZINGLY_GOOD - β”‚ β”‚ β”‚ β”‚ └─┬ enum SomeEnum - β”‚ β”‚ β”‚ β”‚ └── SOME - β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Kwargs - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └─┬ static method(props) method - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ props - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional - β”‚ β”‚ β”‚ β”‚ └── returns: boolean - β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface INamespaced - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ definedAt property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property - β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ β”‚ └─┬ goodness property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness - β”‚ β”‚ β”‚ β”œβ”€β”¬ param - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └─┬ interface SpecialParameter - β”‚ β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”‚ └─┬ value property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ └─┬ returnsparam - β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ └─┬ class ReturnsSpecialParameter - β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer - β”‚ β”‚ β”‚ └─┬ returnsSpecialParam() method - β”‚ β”‚ β”‚ └── returns: jsii-calc.submodule.param.SpecialParameter + β”‚ β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface MyClassReference + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ reference property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.MyClass + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ child + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ static staticProp property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ const + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ class OuterClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ innerClass property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface KwargsProps + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interfaces + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ extra property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ prop property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeEnum + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ interface Structure + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ bool property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: boolean + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Awesomeness + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── AWESOME + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ enum Goodness + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ PRETTY_GOOD + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ REALLY_GOOD + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── AMAZINGLY_GOOD + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ enum SomeEnum + β”‚ β”‚ β”‚ β”‚ β”‚ └── SOME + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Kwargs + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ static method(props) method + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ props + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: Optional + β”‚ β”‚ β”‚ β”‚ β”‚ └── returns: boolean + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ definedAt property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ class Namespaced + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ goodness property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ param + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ interface SpecialParameter + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ value property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ └─┬ returnsparam + β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ └─┬ class ReturnsSpecialParameter + β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ () initializer + β”‚ β”‚ β”‚ β”‚ └─┬ returnsSpecialParam() method + β”‚ β”‚ β”‚ β”‚ └── returns: jsii-calc.submodule.param.SpecialParameter + β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”œβ”€β”¬ class MyClass + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced + β”‚ β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ (props) initializer + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ parameters + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ props + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ methodWithSpecialParam(param) method + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ param + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.param.SpecialParameter + β”‚ β”‚ β”‚ β”‚ β”‚ └── returns: string + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ awesomeness property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Awesomeness + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: string + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ goodness property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ props property + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct + β”‚ β”‚ β”‚ β”‚ └─┬ allTypes property + β”‚ β”‚ β”‚ β”‚ └── type: Optional + β”‚ β”‚ β”‚ └─┬ interface Default + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └─┬ foo property + β”‚ β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ β”‚ β”œβ”€β”€ immutable + β”‚ β”‚ β”‚ └── type: number + β”‚ β”‚ └─┬ union β”‚ β”‚ └─┬ types - β”‚ β”‚ β”œβ”€β”¬ class MyClass - β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: INamespaced + β”‚ β”‚ β”œβ”€β”¬ class ConsumesUnion + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └─┬ static unionType(param) method + β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters + β”‚ β”‚ β”‚ β”‚ └─┬ param + β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.union.IResolvable | jsii-calc.union.Resolvable | @scope/jsii-calc-lib.IFriendly + β”‚ β”‚ β”‚ └── returns: void + β”‚ β”‚ β”œβ”€β”¬ class Resolvable + β”‚ β”‚ β”‚ β”œβ”€β”€ interfaces: IResolvable β”‚ β”‚ β”‚ └─┬ members - β”‚ β”‚ β”‚ β”œβ”€β”¬ (props) initializer - β”‚ β”‚ β”‚ β”‚ └─┬ parameters - β”‚ β”‚ β”‚ β”‚ └─┬ props - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct - β”‚ β”‚ β”‚ β”œβ”€β”¬ methodWithSpecialParam(param) method - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ parameters - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ param - β”‚ β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.param.SpecialParameter - β”‚ β”‚ β”‚ β”‚ └── returns: string - β”‚ β”‚ β”‚ β”œβ”€β”¬ awesomeness property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Awesomeness - β”‚ β”‚ β”‚ β”œβ”€β”¬ definedAt property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: string - β”‚ β”‚ β”‚ β”œβ”€β”¬ goodness property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.Goodness - β”‚ β”‚ β”‚ β”œβ”€β”¬ props property - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ β”‚ β”‚ └── type: jsii-calc.submodule.child.SomeStruct - β”‚ β”‚ β”‚ └─┬ allTypes property - β”‚ β”‚ β”‚ └── type: Optional - β”‚ β”‚ └─┬ interface Default + β”‚ β”‚ β”‚ └─┬ resolve() method + β”‚ β”‚ β”‚ └── returns: any + β”‚ β”‚ └─┬ interface IResolvable β”‚ β”‚ └─┬ members - β”‚ β”‚ └─┬ foo property + β”‚ β”‚ └─┬ resolve() method β”‚ β”‚ β”œβ”€β”€ abstract - β”‚ β”‚ β”œβ”€β”€ immutable - β”‚ β”‚ └── type: number + β”‚ β”‚ └── returns: any β”‚ └─┬ types β”‚ β”œβ”€β”¬ class AbstractClass β”‚ β”‚ β”œβ”€β”€ base: AbstractClassBase @@ -3514,6 +3540,18 @@ exports[`showAll 1`] = ` β”‚ β”œβ”€β”€ @scope/jsii-calc-base β”‚ └── @scope/jsii-calc-base-of-base β”œβ”€β”¬ submodules + β”‚ β”œβ”€β”¬ deprecationRemoval + β”‚ β”‚ └─┬ types + β”‚ β”‚ β”œβ”€β”¬ class InterfaceFactory + β”‚ β”‚ β”‚ └─┬ members + β”‚ β”‚ β”‚ └─┬ static create() method + β”‚ β”‚ β”‚ β”œβ”€β”€ static + β”‚ β”‚ β”‚ └── returns: @scope/jsii-calc-lib.deprecationRemoval.IInterface + β”‚ β”‚ └─┬ interface IInterface + β”‚ β”‚ └─┬ members + β”‚ β”‚ └─┬ method() method + β”‚ β”‚ β”œβ”€β”€ abstract + β”‚ β”‚ └── returns: void β”‚ └─┬ submodule β”‚ └─┬ types β”‚ β”œβ”€β”¬ class NestingClass @@ -3703,20 +3741,22 @@ exports[`signatures 1`] = ` β”‚ β”‚ β”œβ”€β”€ sub1 β”‚ β”‚ └── sub2 β”‚ β”œβ”€β”€ onlystatic - β”‚ └─┬ submodule - β”‚ └─┬ submodules - β”‚ β”œβ”€β”€ back_references - β”‚ β”œβ”€β”€ child - β”‚ β”œβ”€β”€ isolated - β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ └─┬ submodules - β”‚ β”‚ └── deeplyNested - β”‚ β”œβ”€β”€ param - β”‚ └── returnsparam + β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”œβ”€β”€ back_references + β”‚ β”‚ β”œβ”€β”€ child + β”‚ β”‚ β”œβ”€β”€ isolated + β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ └─┬ submodules + β”‚ β”‚ β”‚ └── deeplyNested + β”‚ β”‚ β”œβ”€β”€ param + β”‚ β”‚ └── returnsparam + β”‚ └── union β”œβ”€β”€ @scope/jsii-calc-base β”œβ”€β”€ @scope/jsii-calc-base-of-base └─┬ @scope/jsii-calc-lib └─┬ submodules + β”œβ”€β”€ deprecationRemoval └── submodule " `; @@ -3827,40 +3867,45 @@ exports[`types 1`] = ` β”‚ β”‚ β”œβ”€β”¬ onlystatic β”‚ β”‚ β”‚ └─┬ types β”‚ β”‚ β”‚ └── class OnlyStaticMethods - β”‚ β”‚ └─┬ submodule - β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── interface MyClassReference - β”‚ β”‚ β”‚ β”œβ”€β”¬ child - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class InnerClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class OuterClass - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface KwargsProps - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface SomeStruct - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface Structure - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Awesomeness - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Goodness - β”‚ β”‚ β”‚ β”‚ └── enum SomeEnum - β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── class Kwargs - β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule - β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested - β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ β”‚ └── interface INamespaced - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── class Namespaced - β”‚ β”‚ β”‚ β”œβ”€β”¬ param - β”‚ β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ β”‚ └── interface SpecialParameter - β”‚ β”‚ β”‚ └─┬ returnsparam - β”‚ β”‚ β”‚ └─┬ types - β”‚ β”‚ β”‚ └── class ReturnsSpecialParameter + β”‚ β”‚ β”œβ”€β”¬ submodule + β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ back_references + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── interface MyClassReference + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ child + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class InnerClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ class OuterClass + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface KwargsProps + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface SomeStruct + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ interface Structure + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Awesomeness + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ enum Goodness + β”‚ β”‚ β”‚ β”‚ β”‚ └── enum SomeEnum + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ isolated + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── class Kwargs + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ nested_submodule + β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ submodules + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ deeplyNested + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── interface INamespaced + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── class Namespaced + β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ param + β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ β”‚ └── interface SpecialParameter + β”‚ β”‚ β”‚ β”‚ └─┬ returnsparam + β”‚ β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”‚ └── class ReturnsSpecialParameter + β”‚ β”‚ β”‚ └─┬ types + β”‚ β”‚ β”‚ β”œβ”€β”€ class MyClass + β”‚ β”‚ β”‚ └── interface Default + β”‚ β”‚ └─┬ union β”‚ β”‚ └─┬ types - β”‚ β”‚ β”œβ”€β”€ class MyClass - β”‚ β”‚ └── interface Default + β”‚ β”‚ β”œβ”€β”€ class ConsumesUnion + β”‚ β”‚ β”œβ”€β”€ class Resolvable + β”‚ β”‚ └── interface IResolvable β”‚ └─┬ types β”‚ β”œβ”€β”€ class AbstractClass β”‚ β”œβ”€β”€ class AbstractClassBase @@ -4095,6 +4140,10 @@ exports[`types 1`] = ` β”‚ └── interface VeryBaseProps └─┬ @scope/jsii-calc-lib β”œβ”€β”¬ submodules + β”‚ β”œβ”€β”¬ deprecationRemoval + β”‚ β”‚ └─┬ types + β”‚ β”‚ β”œβ”€β”€ class InterfaceFactory + β”‚ β”‚ └── interface IInterface β”‚ └─┬ submodule β”‚ └─┬ types β”‚ β”œβ”€β”€ class NestingClass diff --git a/packages/jsii-reflect/test/__snapshots__/type-system.test.js.snap b/packages/jsii-reflect/test/__snapshots__/type-system.test.js.snap index 2354699410..8e045fcafd 100644 --- a/packages/jsii-reflect/test/__snapshots__/type-system.test.js.snap +++ b/packages/jsii-reflect/test/__snapshots__/type-system.test.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`TypeSystem.assemblies lists all the loaded assemblies 1`] = ` -Array [ +[ "@scope/jsii-calc-base", "@scope/jsii-calc-base-of-base", "@scope/jsii-calc-lib", @@ -10,7 +10,7 @@ Array [ `; exports[`TypeSystem.classes lists all the classes in the typesystem 1`] = ` -Array [ +[ "@scope/jsii-calc-base-of-base.StaticConsumer", "@scope/jsii-calc-base-of-base.Very", "@scope/jsii-calc-base.Base", @@ -19,6 +19,7 @@ Array [ "@scope/jsii-calc-lib.Number", "@scope/jsii-calc-lib.NumericValue", "@scope/jsii-calc-lib.Operation", + "@scope/jsii-calc-lib.deprecationRemoval.InterfaceFactory", "@scope/jsii-calc-lib.submodule.NestingClass", "@scope/jsii-calc-lib.submodule.NestingClass.NestedClass", "@scope/jsii-calc-lib.submodule.Reflector", @@ -189,6 +190,8 @@ Array [ "jsii-calc.submodule.isolated.Kwargs", "jsii-calc.submodule.nested_submodule.Namespaced", "jsii-calc.submodule.returnsparam.ReturnsSpecialParameter", + "jsii-calc.union.ConsumesUnion", + "jsii-calc.union.Resolvable", ] `; diff --git a/packages/jsii-rosetta/package.json b/packages/jsii-rosetta/package.json index b39c0037a7..7b24a13cb0 100644 --- a/packages/jsii-rosetta/package.json +++ b/packages/jsii-rosetta/package.json @@ -34,7 +34,7 @@ "yargs": "^16.2.0", "semver": "^7.3.7", "semver-intersect": "^1.4.0", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "jsii": "0.0.0" }, "license": "Apache-2.0", diff --git a/packages/jsii-rosetta/test/commands/transliterate.test.ts b/packages/jsii-rosetta/test/commands/transliterate.test.ts index 399fde0e45..a59d11bafa 100644 --- a/packages/jsii-rosetta/test/commands/transliterate.test.ts +++ b/packages/jsii-rosetta/test/commands/transliterate.test.ts @@ -125,10 +125,10 @@ export class ClassName implements IInterface { targets: expect.any(Object), }, ` - Object { - "author": Object { + { + "author": { "name": "John Doe", - "roles": Array [ + "roles": [ "author", ], }, @@ -137,101 +137,101 @@ export class ClassName implements IInterface { "homepage": "https://github.com/aws/jsii.git", "jsiiVersion": Any, "license": "Apache-2.0", - "metadata": Object { - "jsii": Object { - "pacmak": Object { + "metadata": { + "jsii": { + "pacmak": { "hasDefaultInterfaces": true, }, }, }, "name": "testpkg", - "readme": Object { + "readme": { "markdown": "# README \`\`\`csharp - IInterface object = new ClassName(\\"this\\", 1337, new ClassNameProps { Foo = \\"bar\\" }); + IInterface object = new ClassName("this", 1337, new ClassNameProps { Foo = "bar" }); object.Property = EnumType.OPTION_A; object.MethodCall(); ClassName.StaticMethod(EnumType.OPTION_B); \`\`\`", }, - "repository": Object { + "repository": { "type": "git", "url": "https://github.com/aws/jsii.git", }, "schema": "jsii/0.10.0", "targets": Any, - "types": Object { - "testpkg.ClassName": Object { + "types": { + "testpkg.ClassName": { "assembly": "testpkg", "fqn": "testpkg.ClassName", - "initializer": Object { - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps { Property = EnumType.OPTION_B });", + "initializer": { + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps { Property = EnumType.OPTION_B });", "summary": "Create a new instance of ClassName.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 57, }, - "parameters": Array [ - Object { + "parameters": [ + { "name": "_this", - "type": Object { + "type": { "primitive": "string", }, }, - Object { + { "name": "_elite", - "type": Object { + "type": { "primitive": "number", }, }, - Object { + { "name": "props", - "type": Object { + "type": { "fqn": "testpkg.ClassNameProps", }, }, ], }, - "interfaces": Array [ + "interfaces": [ "testpkg.IInterface", ], "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 40, }, - "methods": Array [ - Object { - "docs": Object { + "methods": [ + { + "docs": { "example": "ClassName.StaticMethod();", "remarks": "It can be invoked easily.", "summary": "A static method.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 46, }, "name": "staticMethod", - "parameters": Array [ - Object { + "parameters": [ + { "name": "_enm", "optional": true, - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "static": true, }, - Object { - "docs": Object { + { + "docs": { "summary": "An instance method call.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 61, }, @@ -240,85 +240,85 @@ export class ClassName implements IInterface { }, ], "name": "ClassName", - "properties": Array [ - Object { - "docs": Object { + "properties": [ + { + "docs": { "summary": "A property value.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 50, }, "name": "property", "overrides": "testpkg.IInterface", - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "symbolId": "index:ClassName", }, - "testpkg.ClassNameProps": Object { + "testpkg.ClassNameProps": { "assembly": "testpkg", "datatype": true, "fqn": "testpkg.ClassNameProps", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 35, }, "name": "ClassNameProps", - "properties": Array [ - Object { + "properties": [ + { "abstract": true, "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 37, }, "name": "foo", "optional": true, - "type": Object { + "type": { "primitive": "string", }, }, - Object { + { "abstract": true, "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 36, }, "name": "property", "optional": true, - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "symbolId": "index:ClassNameProps", }, - "testpkg.EnumType": Object { + "testpkg.EnumType": { "assembly": "testpkg", - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps { Property = EnumType.OPTION_B });", + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps { Property = EnumType.OPTION_B });", }, "fqn": "testpkg.EnumType", "kind": "enum", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 5, }, - "members": Array [ - Object { - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps { Property = EnumType.OPTION_A });", + "members": [ + { + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps { Property = EnumType.OPTION_A });", }, "name": "OPTION_A", }, - Object { - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps { Property = EnumType.OPTION_B });", + { + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps { Property = EnumType.OPTION_B });", }, "name": "OPTION_B", }, @@ -326,22 +326,22 @@ export class ClassName implements IInterface { "name": "EnumType", "symbolId": "index:EnumType", }, - "testpkg.IInterface": Object { + "testpkg.IInterface": { "assembly": "testpkg", "fqn": "testpkg.IInterface", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 17, }, - "methods": Array [ - Object { + "methods": [ + { "abstract": true, - "docs": Object { + "docs": { "example": "iface.MethodCall();", "summary": "An instance method call.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 32, }, @@ -349,19 +349,19 @@ export class ClassName implements IInterface { }, ], "name": "IInterface", - "properties": Array [ - Object { + "properties": [ + { "abstract": true, - "docs": Object { + "docs": { "example": "iface.Property = EnumType.OPTION_B;", "summary": "A property value.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 24, }, "name": "property", - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, @@ -380,10 +380,10 @@ export class ClassName implements IInterface { targets: expect.any(Object), }, ` - Object { - "author": Object { + { + "author": { "name": "John Doe", - "roles": Array [ + "roles": [ "author", ], }, @@ -392,101 +392,101 @@ export class ClassName implements IInterface { "homepage": "https://github.com/aws/jsii.git", "jsiiVersion": Any, "license": "Apache-2.0", - "metadata": Object { - "jsii": Object { - "pacmak": Object { + "metadata": { + "jsii": { + "pacmak": { "hasDefaultInterfaces": true, }, }, }, "name": "testpkg", - "readme": Object { + "readme": { "markdown": "# README \`\`\`java - IInterface object = new ClassName(\\"this\\", 1337, new ClassNameProps().foo(\\"bar\\")); + IInterface object = new ClassName("this", 1337, new ClassNameProps().foo("bar")); object.getProperty() = EnumType.OPTION_A; object.methodCall(); ClassName.staticMethod(EnumType.OPTION_B); \`\`\`", }, - "repository": Object { + "repository": { "type": "git", "url": "https://github.com/aws/jsii.git", }, "schema": "jsii/0.10.0", "targets": Any, - "types": Object { - "testpkg.ClassName": Object { + "types": { + "testpkg.ClassName": { "assembly": "testpkg", "fqn": "testpkg.ClassName", - "initializer": Object { - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps().property(EnumType.OPTION_B));", + "initializer": { + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps().property(EnumType.OPTION_B));", "summary": "Create a new instance of ClassName.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 57, }, - "parameters": Array [ - Object { + "parameters": [ + { "name": "_this", - "type": Object { + "type": { "primitive": "string", }, }, - Object { + { "name": "_elite", - "type": Object { + "type": { "primitive": "number", }, }, - Object { + { "name": "props", - "type": Object { + "type": { "fqn": "testpkg.ClassNameProps", }, }, ], }, - "interfaces": Array [ + "interfaces": [ "testpkg.IInterface", ], "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 40, }, - "methods": Array [ - Object { - "docs": Object { + "methods": [ + { + "docs": { "example": "ClassName.staticMethod();", "remarks": "It can be invoked easily.", "summary": "A static method.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 46, }, "name": "staticMethod", - "parameters": Array [ - Object { + "parameters": [ + { "name": "_enm", "optional": true, - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "static": true, }, - Object { - "docs": Object { + { + "docs": { "summary": "An instance method call.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 61, }, @@ -495,85 +495,85 @@ export class ClassName implements IInterface { }, ], "name": "ClassName", - "properties": Array [ - Object { - "docs": Object { + "properties": [ + { + "docs": { "summary": "A property value.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 50, }, "name": "property", "overrides": "testpkg.IInterface", - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "symbolId": "index:ClassName", }, - "testpkg.ClassNameProps": Object { + "testpkg.ClassNameProps": { "assembly": "testpkg", "datatype": true, "fqn": "testpkg.ClassNameProps", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 35, }, "name": "ClassNameProps", - "properties": Array [ - Object { + "properties": [ + { "abstract": true, "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 37, }, "name": "foo", "optional": true, - "type": Object { + "type": { "primitive": "string", }, }, - Object { + { "abstract": true, "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 36, }, "name": "property", "optional": true, - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "symbolId": "index:ClassNameProps", }, - "testpkg.EnumType": Object { + "testpkg.EnumType": { "assembly": "testpkg", - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps().property(EnumType.OPTION_B));", + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps().property(EnumType.OPTION_B));", }, "fqn": "testpkg.EnumType", "kind": "enum", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 5, }, - "members": Array [ - Object { - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps().property(EnumType.OPTION_A));", + "members": [ + { + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps().property(EnumType.OPTION_A));", }, "name": "OPTION_A", }, - Object { - "docs": Object { - "example": "new ClassName(\\"this\\", 1337, new ClassNameProps().property(EnumType.OPTION_B));", + { + "docs": { + "example": "new ClassName("this", 1337, new ClassNameProps().property(EnumType.OPTION_B));", }, "name": "OPTION_B", }, @@ -581,22 +581,22 @@ export class ClassName implements IInterface { "name": "EnumType", "symbolId": "index:EnumType", }, - "testpkg.IInterface": Object { + "testpkg.IInterface": { "assembly": "testpkg", "fqn": "testpkg.IInterface", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 17, }, - "methods": Array [ - Object { + "methods": [ + { "abstract": true, - "docs": Object { + "docs": { "example": "iface.methodCall();", "summary": "An instance method call.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 32, }, @@ -604,19 +604,19 @@ export class ClassName implements IInterface { }, ], "name": "IInterface", - "properties": Array [ - Object { + "properties": [ + { "abstract": true, - "docs": Object { + "docs": { "example": "iface.getProperty() = EnumType.OPTION_B;", "summary": "A property value.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 24, }, "name": "property", - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, @@ -635,10 +635,10 @@ export class ClassName implements IInterface { targets: expect.any(Object), }, ` - Object { - "author": Object { + { + "author": { "name": "John Doe", - "roles": Array [ + "roles": [ "author", ], }, @@ -647,101 +647,101 @@ export class ClassName implements IInterface { "homepage": "https://github.com/aws/jsii.git", "jsiiVersion": Any, "license": "Apache-2.0", - "metadata": Object { - "jsii": Object { - "pacmak": Object { + "metadata": { + "jsii": { + "pacmak": { "hasDefaultInterfaces": true, }, }, }, "name": "testpkg", - "readme": Object { + "readme": { "markdown": "# README \`\`\`python - object = ClassName(\\"this\\", 1337, foo=\\"bar\\") + object = ClassName("this", 1337, foo="bar") object.property = EnumType.OPTION_A object.method_call() ClassName.static_method(EnumType.OPTION_B) \`\`\`", }, - "repository": Object { + "repository": { "type": "git", "url": "https://github.com/aws/jsii.git", }, "schema": "jsii/0.10.0", "targets": Any, - "types": Object { - "testpkg.ClassName": Object { + "types": { + "testpkg.ClassName": { "assembly": "testpkg", "fqn": "testpkg.ClassName", - "initializer": Object { - "docs": Object { - "example": "ClassName(\\"this\\", 1337, property=EnumType.OPTION_B)", + "initializer": { + "docs": { + "example": "ClassName("this", 1337, property=EnumType.OPTION_B)", "summary": "Create a new instance of ClassName.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 57, }, - "parameters": Array [ - Object { + "parameters": [ + { "name": "_this", - "type": Object { + "type": { "primitive": "string", }, }, - Object { + { "name": "_elite", - "type": Object { + "type": { "primitive": "number", }, }, - Object { + { "name": "props", - "type": Object { + "type": { "fqn": "testpkg.ClassNameProps", }, }, ], }, - "interfaces": Array [ + "interfaces": [ "testpkg.IInterface", ], "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 40, }, - "methods": Array [ - Object { - "docs": Object { + "methods": [ + { + "docs": { "example": "ClassName.static_method()", "remarks": "It can be invoked easily.", "summary": "A static method.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 46, }, "name": "staticMethod", - "parameters": Array [ - Object { + "parameters": [ + { "name": "_enm", "optional": true, - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "static": true, }, - Object { - "docs": Object { + { + "docs": { "summary": "An instance method call.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 61, }, @@ -750,85 +750,85 @@ export class ClassName implements IInterface { }, ], "name": "ClassName", - "properties": Array [ - Object { - "docs": Object { + "properties": [ + { + "docs": { "summary": "A property value.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 50, }, "name": "property", "overrides": "testpkg.IInterface", - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "symbolId": "index:ClassName", }, - "testpkg.ClassNameProps": Object { + "testpkg.ClassNameProps": { "assembly": "testpkg", "datatype": true, "fqn": "testpkg.ClassNameProps", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 35, }, "name": "ClassNameProps", - "properties": Array [ - Object { + "properties": [ + { "abstract": true, "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 37, }, "name": "foo", "optional": true, - "type": Object { + "type": { "primitive": "string", }, }, - Object { + { "abstract": true, "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 36, }, "name": "property", "optional": true, - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, ], "symbolId": "index:ClassNameProps", }, - "testpkg.EnumType": Object { + "testpkg.EnumType": { "assembly": "testpkg", - "docs": Object { - "example": "ClassName(\\"this\\", 1337, property=EnumType.OPTION_B)", + "docs": { + "example": "ClassName("this", 1337, property=EnumType.OPTION_B)", }, "fqn": "testpkg.EnumType", "kind": "enum", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 5, }, - "members": Array [ - Object { - "docs": Object { - "example": "ClassName(\\"this\\", 1337, property=EnumType.OPTION_A)", + "members": [ + { + "docs": { + "example": "ClassName("this", 1337, property=EnumType.OPTION_A)", }, "name": "OPTION_A", }, - Object { - "docs": Object { - "example": "ClassName(\\"this\\", 1337, property=EnumType.OPTION_B)", + { + "docs": { + "example": "ClassName("this", 1337, property=EnumType.OPTION_B)", }, "name": "OPTION_B", }, @@ -836,22 +836,22 @@ export class ClassName implements IInterface { "name": "EnumType", "symbolId": "index:EnumType", }, - "testpkg.IInterface": Object { + "testpkg.IInterface": { "assembly": "testpkg", "fqn": "testpkg.IInterface", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 17, }, - "methods": Array [ - Object { + "methods": [ + { "abstract": true, - "docs": Object { + "docs": { "example": "iface.method_call()", "summary": "An instance method call.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 32, }, @@ -859,19 +859,19 @@ export class ClassName implements IInterface { }, ], "name": "IInterface", - "properties": Array [ - Object { + "properties": [ + { "abstract": true, - "docs": Object { + "docs": { "example": "iface.property = EnumType.OPTION_B", "summary": "A property value.", }, - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 24, }, "name": "property", - "type": Object { + "type": { "fqn": "testpkg.EnumType", }, }, @@ -957,10 +957,10 @@ new SampleClass('omitted-literate'); targets: expect.any(Object), }, ` - Object { - "author": Object { + { + "author": { "name": "John Doe", - "roles": Array [ + "roles": [ "author", ], }, @@ -969,22 +969,22 @@ new SampleClass('omitted-literate'); "homepage": "https://github.com/aws/jsii.git", "jsiiVersion": Any, "license": "Apache-2.0", - "metadata": Object { - "jsii": Object { - "pacmak": Object { + "metadata": { + "jsii": { + "pacmak": { "hasDefaultInterfaces": true, }, }, }, "name": "testpkg", - "readme": Object { + "readme": { "markdown": "# Missing literate source ## This is a heading within the literate file! \`\`\`csharp // Example automatically generated from non-compiling source. May contain errors. - new SampleClass(\\"literate\\"); + new SampleClass("literate"); \`\`\` # Missing literate source and fallback @@ -993,46 +993,46 @@ new SampleClass('omitted-literate'); \`\`\`csharp // Example automatically generated from non-compiling source. May contain errors. - new SampleClass(\\"omitted-literate\\"); + new SampleClass("omitted-literate"); \`\`\` # Missing fixture \`\`\`csharp // Example automatically generated from non-compiling source. May contain errors. - new SampleClass(\\"README.md\\"); + new SampleClass("README.md"); \`\`\`", }, - "repository": Object { + "repository": { "type": "git", "url": "https://github.com/aws/jsii.git", }, "schema": "jsii/0.10.0", "targets": Any, - "types": Object { - "testpkg.SampleClass": Object { + "types": { + "testpkg.SampleClass": { "assembly": "testpkg", - "docs": Object { + "docs": { "example": "// Example automatically generated from non-compiling source. May contain errors. - new DoesNotCompile(this, \\"That\\", new Struct { Foo = 1337 });", + new DoesNotCompile(this, "That", new Struct { Foo = 1337 });", }, "fqn": "testpkg.SampleClass", - "initializer": Object { - "locationInModule": Object { + "initializer": { + "locationInModule": { "filename": "index.ts", "line": 8, }, - "parameters": Array [ - Object { + "parameters": [ + { "name": "_source", - "type": Object { + "type": { "primitive": "string", }, }, ], }, "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 7, }, @@ -1052,10 +1052,10 @@ new SampleClass('omitted-literate'); targets: expect.any(Object), }, ` - Object { - "author": Object { + { + "author": { "name": "John Doe", - "roles": Array [ + "roles": [ "author", ], }, @@ -1064,22 +1064,22 @@ new SampleClass('omitted-literate'); "homepage": "https://github.com/aws/jsii.git", "jsiiVersion": Any, "license": "Apache-2.0", - "metadata": Object { - "jsii": Object { - "pacmak": Object { + "metadata": { + "jsii": { + "pacmak": { "hasDefaultInterfaces": true, }, }, }, "name": "testpkg", - "readme": Object { + "readme": { "markdown": "# Missing literate source ## This is a heading within the literate file! \`\`\`java // Example automatically generated from non-compiling source. May contain errors. - new SampleClass(\\"literate\\"); + new SampleClass("literate"); \`\`\` # Missing literate source and fallback @@ -1088,46 +1088,46 @@ new SampleClass('omitted-literate'); \`\`\`java // Example automatically generated from non-compiling source. May contain errors. - new SampleClass(\\"omitted-literate\\"); + new SampleClass("omitted-literate"); \`\`\` # Missing fixture \`\`\`java // Example automatically generated from non-compiling source. May contain errors. - new SampleClass(\\"README.md\\"); + new SampleClass("README.md"); \`\`\`", }, - "repository": Object { + "repository": { "type": "git", "url": "https://github.com/aws/jsii.git", }, "schema": "jsii/0.10.0", "targets": Any, - "types": Object { - "testpkg.SampleClass": Object { + "types": { + "testpkg.SampleClass": { "assembly": "testpkg", - "docs": Object { + "docs": { "example": "// Example automatically generated from non-compiling source. May contain errors. - DoesNotCompile.Builder.create(this, \\"That\\").foo(1337).build();", + DoesNotCompile.Builder.create(this, "That").foo(1337).build();", }, "fqn": "testpkg.SampleClass", - "initializer": Object { - "locationInModule": Object { + "initializer": { + "locationInModule": { "filename": "index.ts", "line": 8, }, - "parameters": Array [ - Object { + "parameters": [ + { "name": "_source", - "type": Object { + "type": { "primitive": "string", }, }, ], }, "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 7, }, @@ -1147,10 +1147,10 @@ new SampleClass('omitted-literate'); targets: expect.any(Object), }, ` - Object { - "author": Object { + { + "author": { "name": "John Doe", - "roles": Array [ + "roles": [ "author", ], }, @@ -1159,22 +1159,22 @@ new SampleClass('omitted-literate'); "homepage": "https://github.com/aws/jsii.git", "jsiiVersion": Any, "license": "Apache-2.0", - "metadata": Object { - "jsii": Object { - "pacmak": Object { + "metadata": { + "jsii": { + "pacmak": { "hasDefaultInterfaces": true, }, }, }, "name": "testpkg", - "readme": Object { + "readme": { "markdown": "# Missing literate source ## This is a heading within the literate file! \`\`\`python # Example automatically generated from non-compiling source. May contain errors. - SampleClass(\\"literate\\") + SampleClass("literate") \`\`\` # Missing literate source and fallback @@ -1183,46 +1183,46 @@ new SampleClass('omitted-literate'); \`\`\`python # Example automatically generated from non-compiling source. May contain errors. - SampleClass(\\"omitted-literate\\") + SampleClass("omitted-literate") \`\`\` # Missing fixture \`\`\`python # Example automatically generated from non-compiling source. May contain errors. - SampleClass(\\"README.md\\") + SampleClass("README.md") \`\`\`", }, - "repository": Object { + "repository": { "type": "git", "url": "https://github.com/aws/jsii.git", }, "schema": "jsii/0.10.0", "targets": Any, - "types": Object { - "testpkg.SampleClass": Object { + "types": { + "testpkg.SampleClass": { "assembly": "testpkg", - "docs": Object { + "docs": { "example": "# Example automatically generated from non-compiling source. May contain errors. - DoesNotCompile(self, \\"That\\", foo=1337)", + DoesNotCompile(self, "That", foo=1337)", }, "fqn": "testpkg.SampleClass", - "initializer": Object { - "locationInModule": Object { + "initializer": { + "locationInModule": { "filename": "index.ts", "line": 8, }, - "parameters": Array [ - Object { + "parameters": [ + { "name": "_source", - "type": Object { + "type": { "primitive": "string", }, }, ], }, "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "index.ts", "line": 7, }, diff --git a/packages/jsii-rosetta/test/jsii/assemblies.test.ts b/packages/jsii-rosetta/test/jsii/assemblies.test.ts index 212072da7e..e260b482b6 100644 --- a/packages/jsii-rosetta/test/jsii/assemblies.test.ts +++ b/packages/jsii-rosetta/test/jsii/assemblies.test.ts @@ -175,7 +175,7 @@ test('Fixture allows use of import statements', async () => { expect(snippets[0].completeSource).toMatchInlineSnapshot(` "// Hoisted imports begin after !show marker below /// !show - import { exit } from \\"process\\"; + import { exit } from "process"; /// !hide // Hoisted imports ended before !hide marker above // This is a fixture diff --git a/packages/jsii/bin/jsii.ts b/packages/jsii/bin/jsii.ts index 838f523fb4..c2fb14cb54 100644 --- a/packages/jsii/bin/jsii.ts +++ b/packages/jsii/bin/jsii.ts @@ -114,7 +114,7 @@ const warningTypes = Object.keys(enabledWarnings); projectInfo, projectReferences: argv['project-references'], failOnWarnings: argv['fail-on-warnings'], - stripDeprecated: !!argv['strip-deprecated'], + stripDeprecated: argv['strip-deprecated'] != null, stripDeprecatedAllowListFile: argv['strip-deprecated'], addDeprecationWarnings: argv['add-deprecation-warnings'], generateTypeScriptConfig: argv['generate-tsconfig'], diff --git a/packages/jsii/lib/assembler.ts b/packages/jsii/lib/assembler.ts index 46816f1a36..94342d2ed0 100644 --- a/packages/jsii/lib/assembler.ts +++ b/packages/jsii/lib/assembler.ts @@ -2222,7 +2222,11 @@ export class Assembler implements Emitter { protected: _isProtected(symbol) || undefined, returns: _isVoid(returnType) ? undefined - : this._optionalValue(returnType, declaration.name, 'return type'), + : this._optionalValue( + returnType, + declaration.type ?? declaration.name, + 'return type', + ), async: _isPromise(returnType) || undefined, static: _isStatic(symbol) || undefined, locationInModule: this.declarationLocation(declaration), @@ -2435,7 +2439,7 @@ export class Assembler implements Emitter { { ...this._optionalValue( this._typeChecker.getTypeAtLocation(paramDeclaration), - paramDeclaration.name, + paramDeclaration.type ?? paramDeclaration.name, 'parameter type', ), name: paramSymbol.name, @@ -2969,7 +2973,22 @@ function _isStatic(symbol: ts.Symbol): boolean { ); } +/** + * Determines whether a given type is void or Promise. + * + * @param type the tested type + * + * @returns `true` if the type is void or Promise + */ function _isVoid(type: ts.Type): boolean { + if (_isPromise(type)) { + const typeRef = type as ts.TypeReference; + return ( + typeRef.typeArguments != null && + typeRef.typeArguments.length === 1 && + _isVoid(typeRef.typeArguments[0]) + ); + } return (type.flags & ts.TypeFlags.Void) !== 0; } diff --git a/packages/jsii/test/__snapshots__/negatives.test.js.snap b/packages/jsii/test/__snapshots__/negatives.test.js.snap index 64b86cf3fc..c0036ba4fa 100644 --- a/packages/jsii/test/__snapshots__/negatives.test.js.snap +++ b/packages/jsii/test/__snapshots__/negatives.test.js.snap @@ -624,19 +624,19 @@ neg.omit.2.ts:7:32 - error JSII3004: Illegal implements clause for an exported A `; exports[`omit.3 1`] = ` -neg.omit.3.ts:8:3 - error JSII1003: Only string-indexed map types are supported +neg.omit.3.ts:8:10 - error JSII1003: Only string-indexed map types are supported 8 bar(): Omit; - ~~~ + ~~~~~~~~~~~~~~~~~~~ `; exports[`omit.4 1`] = ` -neg.omit.4.ts:8:7 - error JSII1003: Only string-indexed map types are supported +neg.omit.4.ts:8:13 - error JSII1003: Only string-indexed map types are supported 8 bar(opts: Omit): void; - ~~~~ + ~~~~~~~~~~~~~~~~~~~ `; diff --git a/packages/jsii/test/deprecated-remover.test.ts b/packages/jsii/test/deprecated-remover.test.ts index 920d228384..a8c0cc9883 100644 --- a/packages/jsii/test/deprecated-remover.test.ts +++ b/packages/jsii/test/deprecated-remover.test.ts @@ -13,23 +13,23 @@ test('produces correct output', () => { { stripDeprecated: true }, ); expect(result.assembly.types).toMatchInlineSnapshot(` - Object { - "testpkg.GrandChild": Object { + { + "testpkg.GrandChild": { "assembly": "testpkg", "base": "testpkg.Retained", "fqn": "testpkg.GrandChild", - "initializer": Object {}, - "interfaces": Array [ + "initializer": {}, + "interfaces": [ "testpkg.IRetainedInterface", ], "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "mixed.ts", "line": 11, }, - "methods": Array [ - Object { - "locationInModule": Object { + "methods": [ + { + "locationInModule": { "filename": "mixed.ts", "line": 12, }, @@ -39,65 +39,65 @@ test('produces correct output', () => { "name": "GrandChild", "symbolId": "mixed:GrandChild", }, - "testpkg.IRetainedInterface": Object { + "testpkg.IRetainedInterface": { "assembly": "testpkg", "fqn": "testpkg.IRetainedInterface", "kind": "interface", - "locationInModule": Object { + "locationInModule": { "filename": "retained.ts", "line": 2, }, "name": "IRetainedInterface", "symbolId": "retained:IRetainedInterface", }, - "testpkg.Retained": Object { + "testpkg.Retained": { "abstract": true, "assembly": "testpkg", "fqn": "testpkg.Retained", - "initializer": Object {}, + "initializer": {}, "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "mixed.ts", "line": 4, }, "name": "Retained", - "properties": Array [ - Object { + "properties": [ + { "immutable": true, - "locationInModule": Object { + "locationInModule": { "filename": "mixed.ts", "line": 7, }, "name": "retained", - "type": Object { + "type": { "primitive": "string", }, }, ], "symbolId": "mixed:Retained", }, - "testpkg.RetainedClass": Object { + "testpkg.RetainedClass": { "assembly": "testpkg", "fqn": "testpkg.RetainedClass", - "initializer": Object {}, + "initializer": {}, "kind": "class", - "locationInModule": Object { + "locationInModule": { "filename": "retained.ts", "line": 3, }, "name": "RetainedClass", "symbolId": "retained:RetainedClass", }, - "testpkg.SomeEnum": Object { + "testpkg.SomeEnum": { "assembly": "testpkg", "fqn": "testpkg.SomeEnum", "kind": "enum", - "locationInModule": Object { + "locationInModule": { "filename": "enums.ts", "line": 2, }, - "members": Array [ - Object { + "members": [ + { "name": "VALUE_RETAINED", }, ], @@ -140,10 +140,10 @@ test('produces correct output', () => { ////////////////// /// mixed.d.ts /// - import * as retained_1 from \\"./retained\\"; + import * as retained_1 from "./retained"; import { IRetainedInterface } from './retained'; export declare abstract class Retained { - readonly retained = \\"YEAH\\"; + readonly retained = "YEAH"; } export declare class GrandChild extends Retained implements retained_1.IRetainedInterface { retainedMethod(): void; @@ -275,176 +275,176 @@ describe('stripDeprecatedAllowList', () => { ); expect(result.assembly.types).toMatchInlineSnapshot(` - Object { - "testpkg.Deprecated": Object { - "assembly": "testpkg", - "base": "testpkg.Retained", - "docs": Object { - "deprecated": "stripped", + { + "testpkg.Deprecated": { + "assembly": "testpkg", + "base": "testpkg.Retained", + "docs": { + "deprecated": "stripped", + "stability": "deprecated", + }, + "fqn": "testpkg.Deprecated", + "initializer": {}, + "interfaces": [ + "testpkg.IRetainedInterface", + ], + "kind": "class", + "locationInModule": { + "filename": "mixed.ts", + "line": 10, + }, + "name": "Deprecated", + "symbolId": "mixed:Deprecated", + }, + "testpkg.DeprecatedClass": { + "assembly": "testpkg", + "docs": { + "deprecated": "stripped", + "stability": "deprecated", + }, + "fqn": "testpkg.DeprecatedClass", + "initializer": {}, + "kind": "class", + "locationInModule": { + "filename": "deprecated.ts", + "line": 5, + }, + "name": "DeprecatedClass", + "symbolId": "deprecated:DeprecatedClass", + }, + "testpkg.DeprecatedEnum": { + "assembly": "testpkg", + "docs": { + "deprecated": "stripped", + "stability": "deprecated", + }, + "fqn": "testpkg.DeprecatedEnum", + "kind": "enum", + "locationInModule": { + "filename": "enums.ts", + "line": 8, + }, + "members": [ + { + "docs": { "stability": "deprecated", }, - "fqn": "testpkg.Deprecated", - "initializer": Object {}, - "interfaces": Array [ - "testpkg.IRetainedInterface", - ], - "kind": "class", - "locationInModule": Object { - "filename": "mixed.ts", - "line": 10, - }, - "name": "Deprecated", - "symbolId": "mixed:Deprecated", + "name": "VALUE_ONE", }, - "testpkg.DeprecatedClass": Object { - "assembly": "testpkg", - "docs": Object { - "deprecated": "stripped", + { + "docs": { "stability": "deprecated", }, - "fqn": "testpkg.DeprecatedClass", - "initializer": Object {}, - "kind": "class", - "locationInModule": Object { - "filename": "deprecated.ts", - "line": 5, + "name": "VALUE_TWO", + }, + ], + "name": "DeprecatedEnum", + "symbolId": "enums:DeprecatedEnum", + }, + "testpkg.GrandChild": { + "assembly": "testpkg", + "base": "testpkg.Deprecated", + "fqn": "testpkg.GrandChild", + "initializer": {}, + "kind": "class", + "locationInModule": { + "filename": "mixed.ts", + "line": 11, + }, + "methods": [ + { + "locationInModule": { + "filename": "mixed.ts", + "line": 12, }, - "name": "DeprecatedClass", - "symbolId": "deprecated:DeprecatedClass", + "name": "retainedMethod", }, - "testpkg.DeprecatedEnum": Object { - "assembly": "testpkg", - "docs": Object { + ], + "name": "GrandChild", + "symbolId": "mixed:GrandChild", + }, + "testpkg.IRetainedInterface": { + "assembly": "testpkg", + "fqn": "testpkg.IRetainedInterface", + "kind": "interface", + "locationInModule": { + "filename": "retained.ts", + "line": 2, + }, + "name": "IRetainedInterface", + "symbolId": "retained:IRetainedInterface", + }, + "testpkg.Retained": { + "abstract": true, + "assembly": "testpkg", + "fqn": "testpkg.Retained", + "initializer": {}, + "kind": "class", + "locationInModule": { + "filename": "mixed.ts", + "line": 4, + }, + "name": "Retained", + "properties": [ + { + "docs": { "deprecated": "stripped", "stability": "deprecated", }, - "fqn": "testpkg.DeprecatedEnum", - "kind": "enum", - "locationInModule": Object { - "filename": "enums.ts", - "line": 8, - }, - "members": Array [ - Object { - "docs": Object { - "stability": "deprecated", - }, - "name": "VALUE_ONE", - }, - Object { - "docs": Object { - "stability": "deprecated", - }, - "name": "VALUE_TWO", - }, - ], - "name": "DeprecatedEnum", - "symbolId": "enums:DeprecatedEnum", - }, - "testpkg.GrandChild": Object { - "assembly": "testpkg", - "base": "testpkg.Deprecated", - "fqn": "testpkg.GrandChild", - "initializer": Object {}, - "kind": "class", - "locationInModule": Object { + "immutable": true, + "locationInModule": { "filename": "mixed.ts", - "line": 11, + "line": 6, }, - "methods": Array [ - Object { - "locationInModule": Object { - "filename": "mixed.ts", - "line": 12, - }, - "name": "retainedMethod", - }, - ], - "name": "GrandChild", - "symbolId": "mixed:GrandChild", - }, - "testpkg.IRetainedInterface": Object { - "assembly": "testpkg", - "fqn": "testpkg.IRetainedInterface", - "kind": "interface", - "locationInModule": Object { - "filename": "retained.ts", - "line": 2, + "name": "deprecated", + "type": { + "primitive": "number", }, - "name": "IRetainedInterface", - "symbolId": "retained:IRetainedInterface", }, - "testpkg.Retained": Object { - "abstract": true, - "assembly": "testpkg", - "fqn": "testpkg.Retained", - "initializer": Object {}, - "kind": "class", - "locationInModule": Object { + { + "immutable": true, + "locationInModule": { "filename": "mixed.ts", - "line": 4, + "line": 7, }, - "name": "Retained", - "properties": Array [ - Object { - "docs": Object { - "deprecated": "stripped", - "stability": "deprecated", - }, - "immutable": true, - "locationInModule": Object { - "filename": "mixed.ts", - "line": 6, - }, - "name": "deprecated", - "type": Object { - "primitive": "number", - }, - }, - Object { - "immutable": true, - "locationInModule": Object { - "filename": "mixed.ts", - "line": 7, - }, - "name": "retained", - "type": Object { - "primitive": "string", - }, - }, - ], - "symbolId": "mixed:Retained", - }, - "testpkg.RetainedClass": Object { - "assembly": "testpkg", - "fqn": "testpkg.RetainedClass", - "initializer": Object {}, - "kind": "class", - "locationInModule": Object { - "filename": "retained.ts", - "line": 3, + "name": "retained", + "type": { + "primitive": "string", }, - "name": "RetainedClass", - "symbolId": "retained:RetainedClass", }, - "testpkg.SomeEnum": Object { - "assembly": "testpkg", - "fqn": "testpkg.SomeEnum", - "kind": "enum", - "locationInModule": Object { - "filename": "enums.ts", - "line": 2, - }, - "members": Array [ - Object { - "name": "VALUE_RETAINED", - }, - ], - "name": "SomeEnum", - "symbolId": "enums:SomeEnum", + ], + "symbolId": "mixed:Retained", + }, + "testpkg.RetainedClass": { + "assembly": "testpkg", + "fqn": "testpkg.RetainedClass", + "initializer": {}, + "kind": "class", + "locationInModule": { + "filename": "retained.ts", + "line": 3, + }, + "name": "RetainedClass", + "symbolId": "retained:RetainedClass", + }, + "testpkg.SomeEnum": { + "assembly": "testpkg", + "fqn": "testpkg.SomeEnum", + "kind": "enum", + "locationInModule": { + "filename": "enums.ts", + "line": 2, + }, + "members": [ + { + "name": "VALUE_RETAINED", }, - } - `); + ], + "name": "SomeEnum", + "symbolId": "enums:SomeEnum", + }, + } + `); expect(declFilesSnapshot(result)).toMatchInlineSnapshot(` "////////////////// /// index.d.ts /// @@ -491,7 +491,7 @@ describe('stripDeprecatedAllowList', () => { export declare abstract class Retained { /** @deprecated stripped */ readonly deprecated = 1337; - readonly retained = \\"YEAH\\"; + readonly retained = "YEAH"; } /** @deprecated stripped */ export declare class Deprecated extends Retained implements IRetainedInterface { diff --git a/packages/jsii/test/deprecation-warnings.test.ts b/packages/jsii/test/deprecation-warnings.test.ts index c5a9d6222b..b62541b8e1 100644 --- a/packages/jsii/test/deprecation-warnings.test.ts +++ b/packages/jsii/test/deprecation-warnings.test.ts @@ -383,10 +383,14 @@ function testpkg_Baz(p) { ); const calcBaseRoot = resolveModuleDir('@scope/jsii-calc-base'); const calcLibRoot = resolveModuleDir('@scope/jsii-calc-lib'); + const calcLibStripDeprecated = path.join( + calcLibRoot, + 'deprecated-to-strip.txt', + ); compile(calcBaseOfBaseRoot, false); compile(calcBaseRoot, true); - compile(calcLibRoot, true); + compile(calcLibRoot, true, calcLibStripDeprecated); const warningsFile = loadWarningsFile(calcBaseRoot); // jsii-calc-base was compiled with warnings. So we expect to see handlers for its types in the warnings file @@ -397,7 +401,7 @@ function testpkg_Baz(p) { // Recompiling without deprecation warning to leave the packages in a clean state compile(calcBaseRoot, false); - compile(calcLibRoot, false); + compile(calcLibRoot, false, calcLibStripDeprecated); }, 120000); }); @@ -474,19 +478,19 @@ describe('Call injections', () => { ); expect(jsFile(result)).toMatchInlineSnapshot(` - "\\"use strict\\"; + ""use strict"; var _a; - Object.defineProperty(exports, \\"__esModule\\", { value: true }); + Object.defineProperty(exports, "__esModule", { value: true }); exports.Foo = void 0; - const jsiiDeprecationWarnings = require(\\"./.warnings.jsii.js\\"); - const JSII_RTTI_SYMBOL_1 = Symbol.for(\\"jsii.rtti\\"); + const jsiiDeprecationWarnings = require("./.warnings.jsii.js"); + const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); class Foo { /** @deprecated Use something else */ bar() { try { - jsiiDeprecationWarnings.print(\\"testpkg.Foo#bar\\", \\"Use something else\\"); + jsiiDeprecationWarnings.print("testpkg.Foo#bar", "Use something else"); } catch (error) { - if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { + if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { Error.captureStackTrace(error, this.bar); } throw error; @@ -494,7 +498,7 @@ describe('Call injections', () => { } exports.Foo = Foo; _a = JSII_RTTI_SYMBOL_1; - Foo[_a] = { fqn: \\"testpkg.Foo\\", version: \\"0.0.1\\" }; + Foo[_a] = { fqn: "testpkg.Foo", version: "0.0.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDSSxNQUFhLEdBQUc7SUFDZCxxQ0FBcUM7SUFDOUIsR0FBRzs7Ozs7Ozs7T0FBSTs7QUFGaEIsa0JBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugc29tZXRoaW5nIGVsc2UgKi9cbiAgICAgIHB1YmxpYyBiYXIoKXt9XG4gICAgfVxuICAiXX0=" `); }); @@ -511,18 +515,18 @@ describe('Call injections', () => { ); expect(jsFile(result)).toMatchInlineSnapshot(` - "\\"use strict\\"; + ""use strict"; var _a; - Object.defineProperty(exports, \\"__esModule\\", { value: true }); + Object.defineProperty(exports, "__esModule", { value: true }); exports.Foo = void 0; - const jsiiDeprecationWarnings = require(\\"./.warnings.jsii.js\\"); - const JSII_RTTI_SYMBOL_1 = Symbol.for(\\"jsii.rtti\\"); + const jsiiDeprecationWarnings = require("./.warnings.jsii.js"); + const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); class Foo { bar(a, b) { try { jsiiDeprecationWarnings.testpkg_A(a); } catch (error) { - if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { + if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { Error.captureStackTrace(error, this.bar); } throw error; @@ -530,7 +534,7 @@ describe('Call injections', () => { } exports.Foo = Foo; _a = JSII_RTTI_SYMBOL_1; - Foo[_a] = { fqn: \\"testpkg.Foo\\", version: \\"0.0.1\\" }; + Foo[_a] = { fqn: "testpkg.Foo", version: "0.0.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFUyxNQUFhLEdBQUc7SUFDUixHQUFHLENBQUMsQ0FBSSxFQUFFLENBQVM7Ozs7Ozs7O01BQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDOztBQUQ3QyxrQkFFQyIsInNvdXJjZXNDb250ZW50IjpbIlxuICAgICAgICBleHBvcnQgaW50ZXJmYWNlIEEge3JlYWRvbmx5IHg6IG51bWJlcjt9XG4gICAgICAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgICAgICBwdWJsaWMgYmFyKGE6IEEsIGI6IG51bWJlcil7cmV0dXJuIGEueCArIGI7fVxuICAgICAgICAgfSJdfQ==" `); }, 60000); @@ -549,30 +553,30 @@ describe('Call injections', () => { ); expect(jsFile(result)).toMatchInlineSnapshot(` - "\\"use strict\\"; + ""use strict"; var _a; - Object.defineProperty(exports, \\"__esModule\\", { value: true }); + Object.defineProperty(exports, "__esModule", { value: true }); exports.Foo = void 0; - const jsiiDeprecationWarnings = require(\\"./.warnings.jsii.js\\"); - const JSII_RTTI_SYMBOL_1 = Symbol.for(\\"jsii.rtti\\"); + const jsiiDeprecationWarnings = require("./.warnings.jsii.js"); + const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); class Foo { constructor() { this._x = 0; } /** @deprecated Use something else */ get x() { try { - jsiiDeprecationWarnings.print(\\"testpkg.Foo#x\\", \\"Use something else\\"); + jsiiDeprecationWarnings.print("testpkg.Foo#x", "Use something else"); } catch (error) { - if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { - Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, \\"x\\").get); + if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { + Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "x").get); } throw error; } return this._x; } } exports.Foo = Foo; _a = JSII_RTTI_SYMBOL_1; - Foo[_a] = { fqn: \\"testpkg.Foo\\", version: \\"0.0.1\\" }; + Foo[_a] = { fqn: "testpkg.Foo", version: "0.0.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDSSxNQUFhLEdBQUc7SUFBaEI7UUFDVSxPQUFFLEdBQUcsQ0FBQyxDQUFDO0tBR2hCO0lBRkMscUNBQXFDO0lBQ3JDLElBQVcsQ0FBQzs7Ozs7Ozs7TUFBRyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUEsRUFBQzs7QUFIaEMsa0JBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIHByaXZhdGUgX3ggPSAwO1xuICAgICAgLyoqIEBkZXByZWNhdGVkIFVzZSBzb21ldGhpbmcgZWxzZSAqL1xuICAgICAgcHVibGljIGdldCB4KCl7cmV0dXJuIHRoaXMuX3h9XG4gICAgfVxuICAiXX0=" `); }); @@ -593,39 +597,39 @@ describe('Call injections', () => { ); expect(jsFile(result)).toMatchInlineSnapshot(` - "\\"use strict\\"; + ""use strict"; var _a; - Object.defineProperty(exports, \\"__esModule\\", { value: true }); + Object.defineProperty(exports, "__esModule", { value: true }); exports.Foo = void 0; - const jsiiDeprecationWarnings = require(\\"./.warnings.jsii.js\\"); - const JSII_RTTI_SYMBOL_1 = Symbol.for(\\"jsii.rtti\\"); + const jsiiDeprecationWarnings = require("./.warnings.jsii.js"); + const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); class Foo { constructor() { this._x = 0; } get x() { try { - jsiiDeprecationWarnings.print(\\"testpkg.Foo#x\\", \\"Use something else\\"); + jsiiDeprecationWarnings.print("testpkg.Foo#x", "Use something else"); } catch (error) { - if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { - Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, \\"x\\").get); + if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { + Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "x").get); } throw error; } return this._x; } /** @deprecated Use something else */ set x(_x) { try { - jsiiDeprecationWarnings.print(\\"testpkg.Foo#x\\", \\"Use something else\\"); + jsiiDeprecationWarnings.print("testpkg.Foo#x", "Use something else"); } catch (error) { - if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { - Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, \\"x\\").set); + if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { + Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "x").set); } throw error; } this._x = _x; } } exports.Foo = Foo; _a = JSII_RTTI_SYMBOL_1; - Foo[_a] = { fqn: \\"testpkg.Foo\\", version: \\"0.0.1\\" }; + Foo[_a] = { fqn: "testpkg.Foo", version: "0.0.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDSSxNQUFhLEdBQUc7SUFBaEI7UUFDVSxPQUFFLEdBQUcsQ0FBQyxDQUFDO0tBS2hCO0lBSkMsSUFBVyxDQUFDOzs7Ozs7OztNQUFHLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQSxFQUFDO0lBRTlCLHFDQUFxQztJQUNyQyxJQUFXLENBQUMsQ0FBQyxFQUFVOzs7Ozs7OztNQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUM7O0FBTDFDLGtCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgZXhwb3J0IGNsYXNzIEZvbyB7XG4gICAgICBwcml2YXRlIF94ID0gMDtcbiAgICAgIHB1YmxpYyBnZXQgeCgpe3JldHVybiB0aGlzLl94fVxuXG4gICAgICAvKiogQGRlcHJlY2F0ZWQgVXNlIHNvbWV0aGluZyBlbHNlICovXG4gICAgICBwdWJsaWMgc2V0IHgoX3g6IG51bWJlcikge3RoaXMuX3ggPSBfeDt9XG4gICAgfVxuICAiXX0=" `); }); @@ -643,19 +647,19 @@ describe('Call injections', () => { ); expect(jsFile(result)).toMatchInlineSnapshot(` - "\\"use strict\\"; + ""use strict"; var _a; - Object.defineProperty(exports, \\"__esModule\\", { value: true }); + Object.defineProperty(exports, "__esModule", { value: true }); exports.Foo = void 0; - const jsiiDeprecationWarnings = require(\\"./.warnings.jsii.js\\"); - const JSII_RTTI_SYMBOL_1 = Symbol.for(\\"jsii.rtti\\"); + const jsiiDeprecationWarnings = require("./.warnings.jsii.js"); + const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); /** @deprecated Use something else */ class Foo { constructor() { try { - jsiiDeprecationWarnings.print(\\"testpkg.Foo\\", \\"Use something else\\"); + jsiiDeprecationWarnings.print("testpkg.Foo", "Use something else"); } catch (error) { - if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { + if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { Error.captureStackTrace(error, Foo); } throw error; @@ -663,7 +667,7 @@ describe('Call injections', () => { } exports.Foo = Foo; _a = JSII_RTTI_SYMBOL_1; - Foo[_a] = { fqn: \\"testpkg.Foo\\", version: \\"0.0.1\\" }; + Foo[_a] = { fqn: "testpkg.Foo", version: "0.0.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDSSxxQ0FBcUM7QUFDckMsTUFBYSxHQUFHO0lBQ2Q7Ozs7OzJDQURXLEdBQUc7OztPQUNDOztBQURqQixrQkFFQyIsInNvdXJjZXNDb250ZW50IjpbIlxuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugc29tZXRoaW5nIGVsc2UgKi9cbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIGNvbnN0cnVjdG9yKCl7fVxuICAgIH1cbiAgIl19" `); }); @@ -905,12 +909,18 @@ function resolveModuleDir(name: string) { return path.dirname(require.resolve(`${name}/package.json`)); } -function compile(projectRoot: string, addDeprecationWarnings: boolean) { +function compile( + projectRoot: string, + addDeprecationWarnings: boolean, + stripDeprecated?: string, +) { const { projectInfo } = loadProjectInfo(projectRoot); const compiler = new Compiler({ projectInfo, addDeprecationWarnings, + stripDeprecated: stripDeprecated != null, + stripDeprecatedAllowListFile: stripDeprecated, }); compiler.emit(); diff --git a/packages/jsii/test/promise.test.ts b/packages/jsii/test/promise.test.ts new file mode 100644 index 0000000000..bdb6255c8c --- /dev/null +++ b/packages/jsii/test/promise.test.ts @@ -0,0 +1,40 @@ +import { sourceToAssemblyHelper } from '../lib'; + +// ---------------------------------------------------------------------- +test('Promise is a valid return type', () => { + const assembly = sourceToAssemblyHelper(` + export class PromiseMaker { + public static staticPromise(): Promise { + return Promise.resolve(); + } + + public instancePromise(): Promise { + return Promise.resolve(); + } + + private constructor() {} + } + `); + + expect(assembly.types!['testpkg.PromiseMaker']).toEqual({ + assembly: 'testpkg', + fqn: 'testpkg.PromiseMaker', + kind: 'class', + methods: [ + { + async: true, + locationInModule: { filename: 'index.ts', line: 3 }, + name: 'staticPromise', + static: true, + }, + { + async: true, + locationInModule: { filename: 'index.ts', line: 7 }, + name: 'instancePromise', + }, + ], + locationInModule: { filename: 'index.ts', line: 2 }, + name: 'PromiseMaker', + symbolId: 'index:PromiseMaker', + }); +}); diff --git a/superchain/Dockerfile b/superchain/Dockerfile index 775583b416..2fe949f737 100644 --- a/superchain/Dockerfile +++ b/superchain/Dockerfile @@ -221,12 +221,12 @@ RUN pip install aws-sam-cli # Install some configuration COPY superchain/ssh_config /root/.ssh/config RUN chmod 600 /root/.ssh/config -COPY superchain/dockerd-entrypoint.sh /usr/local/bin/ # Create the image's non-root user, and enable no-password sudo RUN groupadd --gid 1001 superchain \ && useradd --shell /bin/bash --comment "Docker User" --uid 1001 --gid 1001 --no-log-init --groups sudo superchain \ && echo "%sudo ALL = (ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/nopasswd \ + && echo "superchain ALL = (ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/nopasswd \ && chmod 0440 /etc/sudoers.d/nopasswd COPY --chown=superchain:superchain superchain/m2-settings.xml /home/superchain/.m2/settings.xml COPY --chown=superchain:superchain superchain/ssh_config /home/superchain/.ssh/config diff --git a/superchain/dockerd-entrypoint.sh b/superchain/dockerd-entrypoint.sh deleted file mode 100755 index 41523f95f9..0000000000 --- a/superchain/dockerd-entrypoint.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -set -e - -/usr/bin/dockerd \ - --host=unix:///var/run/docker.sock \ - --host=tcp://127.0.0.1:2375 \ - --storage-driver=overlay2 &>/var/log/docker.log & - - -tries=0 -d_timeout=60 -until docker info >/dev/null 2>&1 -do - if [ "$tries" -gt "$d_timeout" ]; then - cat /var/log/docker.log - echo 'Timed out trying to connect to internal docker host.' >&2 - exit 1 - fi - tries=$(( $tries + 1 )) - sleep 1 -done - -eval "$@" diff --git a/tools/jsii-compliance/suite.ts b/tools/jsii-compliance/suite.ts index 7616aa1206..6f3f2455e8 100644 --- a/tools/jsii-compliance/suite.ts +++ b/tools/jsii-compliance/suite.ts @@ -516,5 +516,9 @@ export const suite: schema.Suite = { name: 'downcasting', description: 'Ensures unsafe-cast features work as expected', }, + { + name: 'strippedDeprecatedMemberCanBeReceived', + description: 'Ensures --strip-deprecated does not cause odd runtime errors', + }, ], }; diff --git a/tsconfig-base.json b/tsconfig-base.json index 9b3a340c0f..e8d41fbe6f 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -21,5 +21,6 @@ "composite": true, /* Ensure TypeScript can determine where to find the outputs of the referenced project to compile project. */ "incremental": true, /* Enable incremental compilation by reading/writing information from prior compilations to a file on disk. */ "useDefineForClassFields": false, /* Use Object.defineProperty for introducing class fields. */ + "skipLibCheck": true, /* Skip type checking of declaration files. */ } } diff --git a/yarn.lock b/yarn.lock index f443d24dee..5bd1925a18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,49 +17,49 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.18.8": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" - integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== +"@babel/compat-data@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" + integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" - integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.1.tgz#c8fa615c5e88e272564ace3d42fbc8b17bfeb22b" + integrity sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.13" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helpers" "^7.18.9" - "@babel/parser" "^7.18.13" + "@babel/generator" "^7.19.0" + "@babel/helper-compilation-targets" "^7.19.1" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.1" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.13" - "@babel/types" "^7.18.13" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.13", "@babel/generator@^7.7.2": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" - integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== +"@babel/generator@^7.19.0", "@babel/generator@^7.7.2": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" + integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== dependencies: - "@babel/types" "^7.18.13" + "@babel/types" "^7.19.0" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== +"@babel/helper-compilation-targets@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" + integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== dependencies: - "@babel/compat-data" "^7.18.8" + "@babel/compat-data" "^7.19.1" "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" + browserslist "^4.21.3" semver "^6.3.0" "@babel/helper-environment-visitor@^7.18.9": @@ -67,13 +67,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -89,24 +89,24 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== +"@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" "@babel/helper-simple-access" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.8.0": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== "@babel/helper-simple-access@^7.18.6": version "7.18.6" @@ -128,23 +128,23 @@ integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== "@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== +"@babel/helpers@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -155,10 +155,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" - integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" + integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -195,6 +195,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -251,14 +258,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/runtime@^7.17.9", "@babel/runtime@^7.7.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== +"@babel/runtime@^7.18.9", "@babel/runtime@^7.7.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": +"@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -267,26 +274,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" - integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.7.2": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" + integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.13" + "@babel/generator" "^7.19.0" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.13" - "@babel/types" "^7.18.13" + "@babel/parser" "^7.19.1" + "@babel/types" "^7.19.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" - integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== dependencies: "@babel/helper-string-parser" "^7.18.10" "@babel/helper-validator-identifier" "^7.18.6" @@ -314,14 +321,14 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@eslint/eslintrc@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" + integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" + espree "^9.4.0" globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -351,6 +358,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -394,38 +406,49 @@ jest-util "^28.1.3" slash "^3.0.0" -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== +"@jest/console@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.3.tgz#a222ab87e399317a89db88a58eaec289519e807a" + integrity sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg== dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + slash "^3.0.0" + +"@jest/core@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.3.tgz#ba22a9cbd0c7ba36e04292e2093c547bf53ec1fd" + integrity sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ== + dependencies: + "@jest/console" "^29.0.3" + "@jest/reporters" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" + jest-changed-files "^29.0.0" + jest-config "^29.0.3" + jest-haste-map "^29.0.3" + jest-message-util "^29.0.3" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.3" + jest-resolve-dependencies "^29.0.3" + jest-runner "^29.0.3" + jest-runtime "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" + jest-watcher "^29.0.3" micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" + pretty-format "^29.0.3" slash "^3.0.0" strip-ansi "^6.0.0" @@ -439,6 +462,16 @@ "@types/node" "*" jest-mock "^28.1.3" +"@jest/environment@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.3.tgz#7745ec30a954e828e8cc6df6a13280d3b51d8f35" + integrity sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA== + dependencies: + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + jest-mock "^29.0.3" + "@jest/expect-utils@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" @@ -446,6 +479,13 @@ dependencies: jest-get-type "^28.0.2" +"@jest/expect-utils@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" + integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== + dependencies: + jest-get-type "^29.0.0" + "@jest/expect@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" @@ -454,6 +494,14 @@ expect "^28.1.3" jest-snapshot "^28.1.3" +"@jest/expect@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.3.tgz#9dc7c46354eeb7a348d73881fba6402f5fdb2c30" + integrity sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ== + dependencies: + expect "^29.0.3" + jest-snapshot "^29.0.3" + "@jest/fake-timers@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" @@ -466,6 +514,18 @@ jest-mock "^28.1.3" jest-util "^28.1.3" +"@jest/fake-timers@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.3.tgz#ad5432639b715d45a86a75c47fd75019bc36b22c" + integrity sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ== + dependencies: + "@jest/types" "^29.0.3" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^29.0.3" + jest-mock "^29.0.3" + jest-util "^29.0.3" + "@jest/globals@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" @@ -475,17 +535,27 @@ "@jest/expect" "^28.1.3" "@jest/types" "^28.1.3" -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== +"@jest/globals@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.3.tgz#681950c430fdc13ff9aa89b2d8d572ac0e4a1bf5" + integrity sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w== + dependencies: + "@jest/environment" "^29.0.3" + "@jest/expect" "^29.0.3" + "@jest/types" "^29.0.3" + jest-mock "^29.0.3" + +"@jest/reporters@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.3.tgz#735f110e08b44b38729d8dbbb74063bdf5aba8a5" + integrity sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@jest/console" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" + "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -497,9 +567,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + jest-worker "^29.0.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -513,6 +583,13 @@ dependencies: "@sinclair/typebox" "^0.24.1" +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== + dependencies: + "@sinclair/typebox" "^0.24.1" + "@jest/source-map@^28.1.2": version "28.1.2" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" @@ -522,6 +599,15 @@ callsites "^3.0.0" graceful-fs "^4.2.9" +"@jest/source-map@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.0.0.tgz#f8d1518298089f8ae624e442bbb6eb870ee7783c" + integrity sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.15" + callsites "^3.0.0" + graceful-fs "^4.2.9" + "@jest/test-result@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" @@ -532,6 +618,16 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" +"@jest/test-result@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.3.tgz#b03d8ef4c58be84cd5d5d3b24d4b4c8cabbf2746" + integrity sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg== + dependencies: + "@jest/console" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + "@jest/test-sequencer@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" @@ -542,6 +638,16 @@ jest-haste-map "^28.1.3" slash "^3.0.0" +"@jest/test-sequencer@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz#0681061ad21fb8e293b49c4fdf7e631ca79240ba" + integrity sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ== + dependencies: + "@jest/test-result" "^29.0.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.0.3" + slash "^3.0.0" + "@jest/transform@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" @@ -563,6 +669,27 @@ slash "^3.0.0" write-file-atomic "^4.0.1" +"@jest/transform@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.3.tgz#9eb1fed2072a0354f190569807d1250572fb0970" + integrity sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.0.3" + "@jridgewell/trace-mapping" "^0.3.15" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.0.3" + jest-regex-util "^29.0.0" + jest-util "^29.0.3" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.1" + "@jest/types@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" @@ -575,6 +702,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" + integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== + dependencies: + "@jest/schemas" "^29.0.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -623,7 +762,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -631,39 +770,39 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@lerna/add@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.4.3.tgz#633e3ddaf342fd1b04161439a266aed9fb37e82e" - integrity sha512-wBjBHX/A0nSiVGJDq5wNpqR+zrxKFREeKrqvIXGmAgcwpDjp76JLVhdSdQns+X+AYsf13NFaNhBqfGlF5SZNnQ== +"@lerna/add@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.5.2.tgz#d5970f408f7f8fa2eaa139e7d3c6a67bdd5fedb2" + integrity sha512-YCBpwDtNICvjTEG7klXITXFC8pZd8NrmkC8yseaTGm51VPNneZVPJZHWhOlWM4spn50ELVP1p2nnSl6COt50aw== dependencies: - "@lerna/bootstrap" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/filter-options" "5.4.3" - "@lerna/npm-conf" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/bootstrap" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/filter-options" "5.5.2" + "@lerna/npm-conf" "5.5.2" + "@lerna/validation-error" "5.5.2" dedent "^0.7.0" npm-package-arg "8.1.1" p-map "^4.0.0" pacote "^13.6.1" semver "^7.3.4" -"@lerna/bootstrap@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-5.4.3.tgz#69d744710c3ac386468ff0ead4e4386d4077ae63" - integrity sha512-9mruEpXD2p8mG9Feak0QzU+JcROsJ8J0MvY7gTGtUqQJqBIA6HGEYXQueHbcl+jGdZyTZOz139KsavPui55QEQ== - dependencies: - "@lerna/command" "5.4.3" - "@lerna/filter-options" "5.4.3" - "@lerna/has-npm-version" "5.4.3" - "@lerna/npm-install" "5.4.3" - "@lerna/package-graph" "5.4.3" - "@lerna/pulse-till-done" "5.4.3" - "@lerna/rimraf-dir" "5.4.3" - "@lerna/run-lifecycle" "5.4.3" - "@lerna/run-topologically" "5.4.3" - "@lerna/symlink-binary" "5.4.3" - "@lerna/symlink-dependencies" "5.4.3" - "@lerna/validation-error" "5.4.3" +"@lerna/bootstrap@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-5.5.2.tgz#d5bedcc001cd4af35043ca5c77342276c8095853" + integrity sha512-oJ9G1MC/TMukJAZAf+bPJ2veAiiUj6/BGe99nagQh7uiXhH1N0uItd/aMC6xBHggu0ZVOQEY7mvL0/z1lGsM4w== + dependencies: + "@lerna/command" "5.5.2" + "@lerna/filter-options" "5.5.2" + "@lerna/has-npm-version" "5.5.2" + "@lerna/npm-install" "5.5.2" + "@lerna/package-graph" "5.5.2" + "@lerna/pulse-till-done" "5.5.2" + "@lerna/rimraf-dir" "5.5.2" + "@lerna/run-lifecycle" "5.5.2" + "@lerna/run-topologically" "5.5.2" + "@lerna/symlink-binary" "5.5.2" + "@lerna/symlink-dependencies" "5.5.2" + "@lerna/validation-error" "5.5.2" "@npmcli/arborist" "5.3.0" dedent "^0.7.0" get-port "^5.1.1" @@ -675,100 +814,100 @@ p-waterfall "^2.1.1" semver "^7.3.4" -"@lerna/changed@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-5.4.3.tgz#527a32f2a5bddd0f69d44ac3aaa0174ef9661936" - integrity sha512-q1ARClN0pLZ53hBPiR4TJB6GGq17Yhwb6iKwQryZBWuOEc87NqqRtIPWswk5NISj2qcPQlbyrnB3RshwLkyo7w== +"@lerna/changed@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-5.5.2.tgz#903600271c58650bc1873e2441aaf9028658e1b8" + integrity sha512-/kF5TKkiXb0921aorZAMsNFAtcaVcDAvO7GndvcZZiDssc4K7weXhR+wsHi9e4dCJ2nVakhVJw0PqRNknd7x/A== dependencies: - "@lerna/collect-updates" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/listable" "5.4.3" - "@lerna/output" "5.4.3" + "@lerna/collect-updates" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/listable" "5.5.2" + "@lerna/output" "5.5.2" -"@lerna/check-working-tree@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-5.4.3.tgz#50576cd9c5abfc405ab6a95a61eab4f2e797d07a" - integrity sha512-OnGqIDW8sRcAQDV8mdtvYIh0EIv2FXm+4/qKAveFhyDkWWpnUF/ZSIa/CFVHYoKFFzb5WOBouml2oqWPyFHhbA== +"@lerna/check-working-tree@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-5.5.2.tgz#4f3de3efe2e8d0c6a62da4c66c17acf6776edaa6" + integrity sha512-FRkEe9Wcr8Lw3dR0AIOrWfODfEAcDKBF5Ol7bIA5wkPLMJbuPBgx4T1rABdRp94SVOnqkRwT9rrsFOESLcQJzQ== dependencies: - "@lerna/collect-uncommitted" "5.4.3" - "@lerna/describe-ref" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/collect-uncommitted" "5.5.2" + "@lerna/describe-ref" "5.5.2" + "@lerna/validation-error" "5.5.2" -"@lerna/child-process@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-5.4.3.tgz#b048145774108cd0bbcfd0ebd6ed7aeb78bfc9bc" - integrity sha512-p7wJ8QT8kXHk4EAy/oyjCD603n1F61Tm4l6thF1h9MAw3ejSvvUZ0BKSg9vPoZ/YMAC9ZuVm1mFsyoi5RlvIHw== +"@lerna/child-process@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-5.5.2.tgz#f95d8aeb01c0cb6e6520bc9de28ff27c8516f588" + integrity sha512-JvTrIEDwq7bd0Nw/4TGAFa4miP8UKARfxhYwHkqX5vM+slNx3BiImkyDhG46C3zR2k/OrOK02CYbBUi6eI2OAw== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/clean@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-5.4.3.tgz#83abd846bc91ffbf0ccf0b153061d73ef175c8ed" - integrity sha512-Kl04A5NqywbBf7azSt9UJqHzRCXogHNpEh3Yng5+Y4ggunP4zVabzdoYGdggS4AsbDuIOKECx9BmCiDwJ4Qv8g== +"@lerna/clean@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-5.5.2.tgz#5de2de1d66a66ee65dbea0b30513f784b4391bd2" + integrity sha512-C38x2B+yTg2zFWSV6/K6grX+7Dzgyw7YpRfhFr1Mat77mhku60lE3mqwU2qCLHlmKBmHV2rB85gYI8yysJ2rIg== dependencies: - "@lerna/command" "5.4.3" - "@lerna/filter-options" "5.4.3" - "@lerna/prompt" "5.4.3" - "@lerna/pulse-till-done" "5.4.3" - "@lerna/rimraf-dir" "5.4.3" + "@lerna/command" "5.5.2" + "@lerna/filter-options" "5.5.2" + "@lerna/prompt" "5.5.2" + "@lerna/pulse-till-done" "5.5.2" + "@lerna/rimraf-dir" "5.5.2" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" -"@lerna/cli@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-5.4.3.tgz#2609d528c43b355418a84e6490184b97a2995c4e" - integrity sha512-avnRUZ51nSZMR+tOcMQZ61hnVbDNdmyaVRxfSLByH5OFY+KPnfaTPv1z4ub+rEtV2NTI5DYWAqxupNGLuu9bQQ== +"@lerna/cli@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-5.5.2.tgz#d4766d324908ebf9b5a9579ac5ee2f7deedcc9d4" + integrity sha512-u32ulEL5CBNYZOTG5dRrVJUT8DovDzjrLj/y/MKXpuD127PwWDe0TE//1NP8qagTLBtn5EiKqiuZlosAYTpiBA== dependencies: - "@lerna/global-options" "5.4.3" + "@lerna/global-options" "5.5.2" dedent "^0.7.0" npmlog "^6.0.2" yargs "^16.2.0" -"@lerna/collect-uncommitted@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-5.4.3.tgz#198e981767e09271f0ac9f91fe942754a1f5f8a8" - integrity sha512-/0u95DbwP1+orGifkPRqaIqD8Ui2vpy9KmeuHTui+4iR/ZvZbgIouMdOhH+fU9e5hfLF6geUKnEFjL+Lxa4qdg== +"@lerna/collect-uncommitted@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-5.5.2.tgz#4397813f4b7ab169e427026548921c93f8be685c" + integrity sha512-2SzH21lDz016Dhu3MjmID9iCMTHYiZ/iu0UKT4I6glmDa44kre18Bp8ihyNzBXNWryj6KjB/0wxgb6dOtccw9A== dependencies: - "@lerna/child-process" "5.4.3" + "@lerna/child-process" "5.5.2" chalk "^4.1.0" npmlog "^6.0.2" -"@lerna/collect-updates@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-5.4.3.tgz#074ce2b208e54ff7948398d005fcb01249284ee0" - integrity sha512-TU3+hcwqHWKSK0J+NWNo5pjP7nnCzhnFfL/UfCG6oNAUb6PnmKSgZ9NqjOXja1WjJPrtFDIGoIYzLJZCePFyLw== +"@lerna/collect-updates@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-5.5.2.tgz#1278aa341b84fcc84ab4efb153464dcbc7706ee0" + integrity sha512-EeAazUjRenojQujM8W2zAxbw8/qEf5qd0pQYFKLCKkT8f332hoYzH8aJqnpAVY5vjFxxxxpjFjExfvMKqkwWVQ== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/describe-ref" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/describe-ref" "5.5.2" minimatch "^3.0.4" npmlog "^6.0.2" slash "^3.0.0" -"@lerna/command@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-5.4.3.tgz#9d492a8e66d06a382005a89a79d05a06a1426ef7" - integrity sha512-xBdbqcvHeWltH4QvWcmH9dKjWzD+KXfhSP0NBgwED8ZNMxSuzBz2OS3Ps8KbLemXNP8P0yhjoPgitGmxxeY/ow== +"@lerna/command@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-5.5.2.tgz#4dcc4c772e82b9069b1b52a4947354825d0debaf" + integrity sha512-hcqKcngUCX6p9i2ipyzFVnTDZILAoxS0xn5YtLXLU2F16o/RIeEuhBrWeExhRXGBo1Rt3goxyq6/bKKaPU5i2Q== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/package-graph" "5.4.3" - "@lerna/project" "5.4.3" - "@lerna/validation-error" "5.4.3" - "@lerna/write-log-file" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/package-graph" "5.5.2" + "@lerna/project" "5.5.2" + "@lerna/validation-error" "5.5.2" + "@lerna/write-log-file" "5.5.2" clone-deep "^4.0.1" dedent "^0.7.0" execa "^5.0.0" is-ci "^2.0.0" npmlog "^6.0.2" -"@lerna/conventional-commits@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-5.4.3.tgz#1f619991aad35a696eca458fb9b966c4b85a1fe4" - integrity sha512-GHZdpCUMqalO692O7Mqj5idYftZWaCylb4TSPkHEU8xSfxtufp8lM+Q8Xxv35ymzs0pBrmzSLZIpIMQ9awDABg== +"@lerna/conventional-commits@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-5.5.2.tgz#810da2733f4350e01f8320991296f6e1ba8d25c1" + integrity sha512-lFq1RTx41QEPU7N1yyqQRhVH1zPpRqWbdSpepBnSgeUKw/aE0pbkgNi+C6BKuSB/9OzY78j1OPbZSYrk4OWEBQ== dependencies: - "@lerna/validation-error" "5.4.3" + "@lerna/validation-error" "5.5.2" conventional-changelog-angular "^5.0.12" conventional-changelog-core "^4.2.4" conventional-recommended-bump "^6.1.0" @@ -779,24 +918,24 @@ pify "^5.0.0" semver "^7.3.4" -"@lerna/create-symlink@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-5.4.3.tgz#fda167628dc169ced79a004609b5c823157d8cfc" - integrity sha512-QxmKCHA5woed/qJjKNkOSgkbhhmPV3g61F499uVwPtyPivn9Y2mbeVPMQrLkb0CL9M6aJ7vE4fi6T5XMqsbNpg== +"@lerna/create-symlink@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-5.5.2.tgz#9593da204b2409bcd3555ad6f67b9d7cb5b7cdfc" + integrity sha512-/C0SP2C5+Lvol4Uul0/p0YJML/AOv1dO4y3NrRpYGnN750AuQMuhJQsBcHip80sFStKnNaUxXQb82itkL/mduw== dependencies: cmd-shim "^5.0.0" fs-extra "^9.1.0" npmlog "^6.0.2" -"@lerna/create@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-5.4.3.tgz#acf6528de1f42465d6824b4d048b39f7ce49af4b" - integrity sha512-VLrcfjBNzhUie5tLWSEa203BljirEG7OH62lgoLqR9qA/FVozoWrRKmly/EVw8Q7+5UNw/ciTzXnbm0BPXl6tg== +"@lerna/create@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-5.5.2.tgz#6091f550df9a389c9a8239e18f91b1acfdab1dcd" + integrity sha512-NawigXIAwPJjwDKTKo4aqmos8GIAYK8AQumwy027X418GzXf504L1acRm3c+3LmL1IrZTStWkqSNs56GrKRY9A== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/npm-conf" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/npm-conf" "5.5.2" + "@lerna/validation-error" "5.5.2" dedent "^0.7.0" fs-extra "^9.1.0" globby "^11.0.2" @@ -809,221 +948,220 @@ slash "^3.0.0" validate-npm-package-license "^3.0.4" validate-npm-package-name "^4.0.0" - whatwg-url "^8.4.0" yargs-parser "20.2.4" -"@lerna/describe-ref@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-5.4.3.tgz#3b515d966e6804864f68950c13bf306c5ad74141" - integrity sha512-g3R5exjZy5MOcMPzgU8+t7sGEt4gGMKQLUFfg5NAceera6RGWUieY8OWL6jlacgyM4c8iyh15Tu14YwzL2DiBA== +"@lerna/describe-ref@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-5.5.2.tgz#ba64e568bfbea8cca81b0a919550c33cf8359869" + integrity sha512-JY1Lk8sHX4mBk83t1wW8ak+QWzlExZluOMUixIWLhzHlOzRXnx/WJnvW3E2UgN/RFOBHsI8XA6RmzV/xd/D44Q== dependencies: - "@lerna/child-process" "5.4.3" + "@lerna/child-process" "5.5.2" npmlog "^6.0.2" -"@lerna/diff@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-5.4.3.tgz#724644c55dae7a4cf196d5db922238a3dde079e2" - integrity sha512-MJKvy/XC2RpS/gqg7GguQsBv5rZm+S5P/kfnqhapXCniGviZfq+JfY5TQCsAP9umiybR2sB004K1Z7heyU8uMA== +"@lerna/diff@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-5.5.2.tgz#ff51712f1554cfea499954c406a79cea15744795" + integrity sha512-cBXCF/WXh59j6ydTObUB5vhij1cO1kmEVaW4su8rMqLy0eyAmYAckwnL4WIu3NUDlIm7ykaDp+itdAXPeUdDmw== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/validation-error" "5.5.2" npmlog "^6.0.2" -"@lerna/exec@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-5.4.3.tgz#85427f565fda9dcb25f76428d30baf0da007be5f" - integrity sha512-BLrva/KV6JWTV+7h7h+NQDsxpz0z1Nh99BUqqvZDzGIKMey4c1fo+CQGac77TsAophnv0ieFgHkSmrC6NXJa9g== - dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/filter-options" "5.4.3" - "@lerna/profiler" "5.4.3" - "@lerna/run-topologically" "5.4.3" - "@lerna/validation-error" "5.4.3" +"@lerna/exec@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-5.5.2.tgz#70f64ec8c801905f9af30f1a6b955aa1160e142e" + integrity sha512-hwEIxSp3Gor5pMZp7jMrQ7qcfzyJOI5Zegj9K72M5KKRYSXI1uFxexZzN2ZJCso/rHg9H4TCa9P2wjmoo8KPag== + dependencies: + "@lerna/child-process" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/filter-options" "5.5.2" + "@lerna/profiler" "5.5.2" + "@lerna/run-topologically" "5.5.2" + "@lerna/validation-error" "5.5.2" p-map "^4.0.0" -"@lerna/filter-options@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-5.4.3.tgz#2447ea9f5a4d03bf772fb47fea727d085fe8aa01" - integrity sha512-581GE81BSWgS9za4tBv1nwZ2ImgH7UO3xil1b7xogvc/iGwM0MgOwt9f1MrS5ZOliNnme4cSZEGFe+QWPXCE4A== +"@lerna/filter-options@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-5.5.2.tgz#bf495abd596a170d8625281fadff052112fb2571" + integrity sha512-h9KrfntDjR1PTC0Xeu07dYytSdZ4jcKz/ykaqhELgXVDbzOUY9RnQd32e4XJ8KRSERMe4VS7DxOnxV4LNI0xqA== dependencies: - "@lerna/collect-updates" "5.4.3" - "@lerna/filter-packages" "5.4.3" + "@lerna/collect-updates" "5.5.2" + "@lerna/filter-packages" "5.5.2" dedent "^0.7.0" npmlog "^6.0.2" -"@lerna/filter-packages@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-5.4.3.tgz#fdcad77f8ce76012a585d6ef12c3eba732c46aa9" - integrity sha512-W5OVMUjXh/Zii17FCSbIf/6Q3Bo5ETMAWMZ6EpHSU99M0kdvgpjXj3VUSjiCzwccqIa2EZjaua0RWSbOtfZCVg== +"@lerna/filter-packages@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-5.5.2.tgz#043784114fb0a8924b08536b5f62f0e741fc9362" + integrity sha512-EaZA0ibWKnpBePFt5gVbiTYgXwOs01naVPcPnBQt5EhHVN878rUoNXNnhT/X/KXFiiy6v3CW53sczlqTNoFuSg== dependencies: - "@lerna/validation-error" "5.4.3" + "@lerna/validation-error" "5.5.2" multimatch "^5.0.0" npmlog "^6.0.2" -"@lerna/get-npm-exec-opts@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.4.3.tgz#9cf0d299ae534adc0d5efe883e304bd5c3e14076" - integrity sha512-q/3zQvlwTpAh6HVtVGOTuCGIgkhtCPK9CcHRo09c0Q3LQk5MsZYkPmJe0ujU1Gf7pILzQA5tnCy56eWT5uMPUg== +"@lerna/get-npm-exec-opts@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.5.2.tgz#a17489e5c4c5c180bee3095d1418782bdf7db615" + integrity sha512-CSwUpQrEYe20KEJnpdLxeLdYMaIElTQM9SiiFKUwnm/825TObkdDQ/fAG9Vk3fkHljPcu7SiV1A/g2XkbmpJUA== dependencies: npmlog "^6.0.2" -"@lerna/get-packed@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-5.4.3.tgz#5a44b51b515b1d8b7e194772e4b8ec4419df9204" - integrity sha512-y97plqJmrTwnZE9EH0MhtwnVHOF/revnH95fD2UyUpGrxdAFvbE7rs3A9zrSxurFLn4q6qWBKONwQLccQSTBTA== +"@lerna/get-packed@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-5.5.2.tgz#f355773cbd295bc305ffc59050be9e6cdcc53825" + integrity sha512-C+2/oKqTdgskuK3SpoxzxJSffwQGRU/W8BA5rC/HmRN2xom8xlgZjP0Pcsv7ucW1BjE367hh+4E/BRZXPxuvVQ== dependencies: fs-extra "^9.1.0" ssri "^9.0.1" tar "^6.1.0" -"@lerna/github-client@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-5.4.3.tgz#30e37a357eff5b8c10c2fea8069f0df99932d8ea" - integrity sha512-P/i64IUDw72YvS5lTciCLAxvjliN2lZSDZSqH59kQ4m2dma0dChiLTreq1Ei8xyY124oacARwxxQCN95m2u3nw== +"@lerna/github-client@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-5.5.2.tgz#003ad2712786338b347d9675294be7e40f7f2a84" + integrity sha512-aIed5+l+QoiQmlCvcRoGgJ9z0Wo/7BZU0cbcds7OyhB6e723xtBTk3nXOASFI9TdcRcrnVpOFOISUKU+48d7Ig== dependencies: - "@lerna/child-process" "5.4.3" + "@lerna/child-process" "5.5.2" "@octokit/plugin-enterprise-rest" "^6.0.1" "@octokit/rest" "^19.0.3" - git-url-parse "^12.0.0" + git-url-parse "^13.1.0" npmlog "^6.0.2" -"@lerna/gitlab-client@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-5.4.3.tgz#ecf81a0400ad199e9542676519ecf1a5bb898666" - integrity sha512-EEr5OkdiS7ev2X9jaknr3UUksPajij1nGFFhPXpAexAEkJYSRjdSvfPtd4ssTViIHMGHKMcNcGrMW+ESly1lpw== +"@lerna/gitlab-client@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-5.5.2.tgz#1d14b5f71e3e8074ea1894941702f32f0cff5031" + integrity sha512-iSNk8ktwRXL5JgTYvKdEQASHLgo8Vq4RLX1hOFhOMszxKeT2kjCXLqefto3TlJ5xOGQb/kaGBm++jp+uZxhdog== dependencies: node-fetch "^2.6.1" npmlog "^6.0.2" - whatwg-url "^8.4.0" -"@lerna/global-options@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-5.4.3.tgz#5603fd90a69ac8585d413d743ab03f7da18e2f0c" - integrity sha512-e0TVIHLl0IULJWfLA9uGOIYnI3MVAjTp9I0p/9u3fC62dQxJBhoy5/9+y2zuu85MTB+4XTVi2m8G99H9pfBhMA== +"@lerna/global-options@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-5.5.2.tgz#4eafa90fb62036701ed04319adb33ab4901f1f5d" + integrity sha512-YaFCLMm7oThPpmRvrDX/VuoihrWCqBVm3zG+c8OM7sjs1MXDKycbdhtjzIwysWocEpf0NjUtdQS7v6gUhfNiFQ== -"@lerna/has-npm-version@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-5.4.3.tgz#721cd987d02cfebc6e6ab953f888009a62f3e2e0" - integrity sha512-Vu5etw5vXEbYLOO26lO3u5gEjX9vWUjqLTQfNEnJxflaH9JWw2NNJ/6nXG0hqc8kEmMdhabrw+FHSKaO9ZQygw== +"@lerna/has-npm-version@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-5.5.2.tgz#4bb84f223aa6a6b608e057b6a3dc7bd96dbbe03f" + integrity sha512-8BHJCVPy5o0vERm0jjcwYSCNOK+EclbufR05kqorsYzCu0xWPOc3SDlo5mXuWsG61SlT3RdV9SJ3Rab15fOLAg== dependencies: - "@lerna/child-process" "5.4.3" + "@lerna/child-process" "5.5.2" semver "^7.3.4" -"@lerna/import@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-5.4.3.tgz#c3b552f53bf9d49abc7167dfbcc54ff9211e8d3d" - integrity sha512-SRUyITjhqbN7JOrUHskaqbppiq8yqpSLw1+tseT3D3HdYQQjvQzR1GjBVm+LZKlHRi9qqku9fqUNQf9AqbtysA== +"@lerna/import@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-5.5.2.tgz#7f18d17723a320ceea694955c351c7c8d60e3152" + integrity sha512-QtHJEo/9RRO9oILzSK45k5apsAyUEgwpGj4Ys3gZ7rFuXQ4+xHi9R6YC0IjwyiSfoN/i3Qbsku+PByxhhzkxHQ== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/prompt" "5.4.3" - "@lerna/pulse-till-done" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/prompt" "5.5.2" + "@lerna/pulse-till-done" "5.5.2" + "@lerna/validation-error" "5.5.2" dedent "^0.7.0" fs-extra "^9.1.0" p-map-series "^2.1.0" -"@lerna/info@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-5.4.3.tgz#f35c68b97d05734d418d36a83be7dea138b280e0" - integrity sha512-cO0jWK2zcU9fsnoR2aqYU1IqNxWBkLvvQcTiodPqMsTAVh2F8cbwUXptWJyvsyCkKqO86axa7h6AbeF9rHRj0g== +"@lerna/info@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-5.5.2.tgz#8ae7b2efb64579f6aa153c597cd2da99e2716802" + integrity sha512-Ek+bCooAfng+K4Fgy9i6jKBMpZZQ3lQpv6SWg8TbrwGR/el8FYBJod3+I5khJ2RJqHAmjLBz6wiSyVPMjwvptw== dependencies: - "@lerna/command" "5.4.3" - "@lerna/output" "5.4.3" + "@lerna/command" "5.5.2" + "@lerna/output" "5.5.2" envinfo "^7.7.4" -"@lerna/init@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-5.4.3.tgz#7ff95984864daecfc8f152b4456f9e17da218af9" - integrity sha512-cicNfMuswF+8S5RhbvCnXIrdNWTS5/ajwGYOv85x/Gu2FOJ1eqJ4W4Ai6ybANBefErE4+7aSGl/kt/+sRvTeTw== +"@lerna/init@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-5.5.2.tgz#51439bacfcf6670bda042541566432836c6fb54e" + integrity sha512-CKHrcOlm2XXXF384FeCKK+CjKBW22HkJ5CcLlU1gnTFD2QarrBwTOGjpRaREXP8T/k3q7h0W0FK8B77opqLwDg== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/project" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/project" "5.5.2" fs-extra "^9.1.0" p-map "^4.0.0" write-json-file "^4.3.0" -"@lerna/link@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-5.4.3.tgz#feaa02124a75c2a9e5990e88b2f4f73c21081ae4" - integrity sha512-DY6PQYE2g1a5QGDXCoajr8hl87m83vmfUIz1342x1qwWHmfRLfS3KTPPfa5bsZk/ABVOrqjjz/v3m4SEJ4LC5A== +"@lerna/link@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-5.5.2.tgz#ed9225f29cb8887f5da124ebb54f7e0c978896bb" + integrity sha512-B/0a+biXO2uMSbNw1Vv9YMrfse0i8HU9mrrWQbXIHws3j0i5Wxuxvd7B/r0xzYN5LF5AFDxrPjPNTgC49U/58Q== dependencies: - "@lerna/command" "5.4.3" - "@lerna/package-graph" "5.4.3" - "@lerna/symlink-dependencies" "5.4.3" + "@lerna/command" "5.5.2" + "@lerna/package-graph" "5.5.2" + "@lerna/symlink-dependencies" "5.5.2" + "@lerna/validation-error" "5.5.2" p-map "^4.0.0" slash "^3.0.0" -"@lerna/list@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-5.4.3.tgz#24c0df926777c218b3e6486baded3c8b17ea6f5a" - integrity sha512-VEoJfobof7Welp+1yX6gm0EtpZw9vyztGvTtOeHQ1fhfW88oav03Qoi/hk1qZXPf7/hVZrJKEmSJ4etxsbZ3/g== +"@lerna/list@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-5.5.2.tgz#dfebcaae284bb25d2a5d1223086a95cd22bc4701" + integrity sha512-uC/LRq9zcOM33vV6l4Nmx18vXNNIcaxFHVCBOC3IxZJb0MTPzKFqlu/YIVQaJMWeHpiIo6OfbK4mbH1h8yXmHw== dependencies: - "@lerna/command" "5.4.3" - "@lerna/filter-options" "5.4.3" - "@lerna/listable" "5.4.3" - "@lerna/output" "5.4.3" + "@lerna/command" "5.5.2" + "@lerna/filter-options" "5.5.2" + "@lerna/listable" "5.5.2" + "@lerna/output" "5.5.2" -"@lerna/listable@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-5.4.3.tgz#92459e2c2c052da2e51d9e1e7fe94786ea739cb0" - integrity sha512-VcJMw+z84Rj1nLIso474+veFx0tCH9Jas02YXx9cgAnaK1IRP0BI9O0vccQIZ+2Rb62VLiFGzyCJIyKyhcGZHw== +"@lerna/listable@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-5.5.2.tgz#ed2858acef7886067ff373f501102999caf86c55" + integrity sha512-CEDTaLB8V7faSSTgB1II1USpda5PQWUkfsvDJekJ4yZ4dql3XnzqdVZ48zLqPArl/30e0g1gWGOBkdKqswY+Yg== dependencies: - "@lerna/query-graph" "5.4.3" + "@lerna/query-graph" "5.5.2" chalk "^4.1.0" columnify "^1.6.0" -"@lerna/log-packed@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-5.4.3.tgz#4f994f1b435078d49b08eec84496f6ad81158078" - integrity sha512-pFEBaj5JOf44+kOV6eiFHAfEULC6NhHJHHFwkljL1WNcx/+46aOADY9LrjmVtp8uPWv3fMCb3ZGcxuGebz1lYA== +"@lerna/log-packed@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-5.5.2.tgz#3f651f2d010e830aa3dfe34b59ba8767c29e0658" + integrity sha512-k1tKZdNuAIj9t7ZJBSzua5zEnPoweKLpuXYzuiBE8CALBfl2Zf9szsbDQDsERDOxQ365+FEgK+GfkmvxtYx4tw== dependencies: byte-size "^7.0.0" columnify "^1.6.0" has-unicode "^2.0.1" npmlog "^6.0.2" -"@lerna/npm-conf@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-5.4.3.tgz#d5ea75aff7d561e8c0a529abff1ac9eee135482e" - integrity sha512-iQrrZHxAXqogfCpQvC/ac42/gR3osT+WN2FFB1gjVYYFBMZto5mlpcvyzH8rb75OJfak8iDtOYHUymmwSda1jw== +"@lerna/npm-conf@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-5.5.2.tgz#bec9b5d7d729be86386a154170bd65e6057578c6" + integrity sha512-X2EE1TCSfsYy2XTUUN0+QXXEPvecuGk3mpTXR5KP+ScAs0WmTisRLyJ9lofh/9e0SIIGdVYmh2PykhgduyOKsg== dependencies: config-chain "^1.1.12" pify "^5.0.0" -"@lerna/npm-dist-tag@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-5.4.3.tgz#d070167a3cb4bd28c1b034c954eb8597f8806f4d" - integrity sha512-LnbD6xrnrmMdXH/nntyd/xJueKZGhCv3YLWK9F6YQdmUoeWY+W7eckmdd8LKL6ZqupyeLxgn0NKwiJ5wxf0F2w== +"@lerna/npm-dist-tag@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-5.5.2.tgz#56b441efb85cd3de88f15c97553942372da9a774" + integrity sha512-Od4liA0ISunwatHxArHdaxFc/m9dXMI0fAFqbScgeqVkY8OeoHEY/AlINjglYChtGcbKdHm1ml8qvlK9Tr2EXg== dependencies: - "@lerna/otplease" "5.4.3" + "@lerna/otplease" "5.5.2" npm-package-arg "8.1.1" npm-registry-fetch "^13.3.0" npmlog "^6.0.2" -"@lerna/npm-install@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-5.4.3.tgz#ce40861298965ff3cec9e672dad02f4399f7f54b" - integrity sha512-MPXYQ1r/UMV9x+6F2VEk3miHOw4fn+G4zN11PGB5nWmuaT4uq7rPoudkdRvMRqm6bK0NpL/trssSb12ERzevqg== +"@lerna/npm-install@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-5.5.2.tgz#26dcbf45b27f06e9744b9283c23d30d7feeaabb5" + integrity sha512-aDIDRS9C9uWheuc6JEntNqTcaTcSFyTx4FgUw5FDHrwsTZ9TiEAB9O+XyDKIlcGHlNviuQt270boUHjsvOoMcg== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/get-npm-exec-opts" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/get-npm-exec-opts" "5.5.2" fs-extra "^9.1.0" npm-package-arg "8.1.1" npmlog "^6.0.2" signal-exit "^3.0.3" write-pkg "^4.0.0" -"@lerna/npm-publish@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-5.4.3.tgz#7dffa552c42071aa707cd5a88d7984da7ea3188c" - integrity sha512-yfwtTWYRace2oJK+a7nVUs7HubypgoA1fEZ6JUZFKVkq54C8tDdyYz4EtTtiFr7WMjP8p3NWxh7RNh7Tyx7ckQ== +"@lerna/npm-publish@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-5.5.2.tgz#be9c2f8eaf1ab21619ad43434e6f69a56e9eda28" + integrity sha512-TRYkkocg/VFy9MwWtfIa2gNXFkMwkDfaS1exgJK4DKbjH3hiBo/cDG3Zx/jMBGvetv4CLsC2n+phRhozgCezTA== dependencies: - "@lerna/otplease" "5.4.3" - "@lerna/run-lifecycle" "5.4.3" + "@lerna/otplease" "5.5.2" + "@lerna/run-lifecycle" "5.5.2" fs-extra "^9.1.0" libnpmpublish "^6.0.4" npm-package-arg "8.1.1" @@ -1031,128 +1169,129 @@ pify "^5.0.0" read-package-json "^5.0.1" -"@lerna/npm-run-script@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-5.4.3.tgz#4fcf3b641919446aca1d584633c22e3ab2a12f00" - integrity sha512-xb6YAxAxGDBPlpZtjDPlM9NAgIcNte31iuGpG0I5eTYqBppKNZ7CQ8oi76qptrLyrK/ug9kqDIGti5OgyAMihQ== +"@lerna/npm-run-script@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-5.5.2.tgz#790ac839f3f761deb017dd02a666488be0a7f24b" + integrity sha512-lKn4ybw/97SMR/0j5UcJraL+gpfXv2HWKmlrG47JuAMJaEFkQQyCh4EdP3cGPCnSzrI5zXsil8SS/JelkhQpkg== dependencies: - "@lerna/child-process" "5.4.3" - "@lerna/get-npm-exec-opts" "5.4.3" + "@lerna/child-process" "5.5.2" + "@lerna/get-npm-exec-opts" "5.5.2" npmlog "^6.0.2" -"@lerna/otplease@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-5.4.3.tgz#645da8b8bc2e4b9929333b70e5a8ce972c85ca73" - integrity sha512-iy+NpqP9UcB8a0W3Nhq20x2gWSRQcmkOb25qSJj7f5AisCwGWypYlD6RZ9NqCzUD7KEbAaydEEyhoPw9dQRFmg== +"@lerna/otplease@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-5.5.2.tgz#ae49aa9e2298d68282f641ebd7a94d1b9677e28b" + integrity sha512-kZwSWTLGFWLoFX0p6RJ8AARIo6P/wkIcUyAFrVU3YTesN7KqbujpzaVTf5bAWsDdeiRWizCGM1TVw2IDUtStQg== dependencies: - "@lerna/prompt" "5.4.3" + "@lerna/prompt" "5.5.2" -"@lerna/output@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/output/-/output-5.4.3.tgz#6003a46356b92951a4c041b70b6bf27d358a6cab" - integrity sha512-y/skSk0jMxPlJ1gpQwmKiMdElbznOMCYdCi170wfj3esby+fr8eULiwx7wUy3K+YtEGp7JS6TUjXb4zm9O0rMw== +"@lerna/output@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-5.5.2.tgz#2c0aa22c15f887ff1835d15fdf7ca198110f2fb7" + integrity sha512-Sv5qMvwnY7RGUw3JHyNUHNlQ4f/167kK1tczCaHUXa1SmOq5adMBbiMNApa2y5s8B+v9OahkU2nnOOaIuVy0HQ== dependencies: npmlog "^6.0.2" -"@lerna/pack-directory@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-5.4.3.tgz#eea41c6db9a0b0e81efa07f334d3770a11e8608b" - integrity sha512-47vsQem4Jr1W7Ce03RKihprBFLh2Q+VKgIcQGPec764i5uv3QWHzqK//da7+fmHr86qusinHvCIV7X3pXcohWg== +"@lerna/pack-directory@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-5.5.2.tgz#4a499fd2d2deeed0d2a1859c51b98f96b4b7ef9f" + integrity sha512-LvBbOeSwbpHPL7w9cI0Jtpa6r61N3KboD4nutNlWaT9LRv0dLlex2k10Pfc8u15agQ62leLhHa6UmjFt16msEA== dependencies: - "@lerna/get-packed" "5.4.3" - "@lerna/package" "5.4.3" - "@lerna/run-lifecycle" "5.4.3" - "@lerna/temp-write" "5.4.3" + "@lerna/get-packed" "5.5.2" + "@lerna/package" "5.5.2" + "@lerna/run-lifecycle" "5.5.2" + "@lerna/temp-write" "5.5.2" npm-packlist "^5.1.1" npmlog "^6.0.2" tar "^6.1.0" -"@lerna/package-graph@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-5.4.3.tgz#5710409b6233a20dfc98bb0004c611bc8a9ae9d4" - integrity sha512-8eyAS+hb+K/+1Si2UNh4KPaLFdgTgdrRcsuTY7aKaINyrzoLTArAKPk4dQZTH1d0SUWtFzicvWixkkzq21QuOw== +"@lerna/package-graph@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-5.5.2.tgz#ae1d52f520f376cf819823fe16524c0f39c6b32c" + integrity sha512-tyMokkrktvohhU3PE3nZLdjrmozcrV8ql37u0l/axHXrfNiV3RDn9ENVvYXnLnP2BCHV572RRpbI5kYto4wtRg== dependencies: - "@lerna/prerelease-id-from-version" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/prerelease-id-from-version" "5.5.2" + "@lerna/validation-error" "5.5.2" npm-package-arg "8.1.1" npmlog "^6.0.2" semver "^7.3.4" -"@lerna/package@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-5.4.3.tgz#ff1505199977debfa58862dde5df804d5db4bca6" - integrity sha512-EIw82v4ijzS3qRCSKHNSJ/UTnFDroaEp6mj7pzLO6lIrAqg7MgtKeThMhzEAMvF4yNB7BL+UR+dZ0jI47WgQJQ== +"@lerna/package@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-5.5.2.tgz#5f692289d1164a4d3456cba0c45ec6ea5fc0f4a7" + integrity sha512-/36+oq5Q63EYSyjW5mHPR3aMrXDo6Wn8zKcl9Dfd4bn+w0AfK/EbId7iB/TrFaNdGtw8CrhK+e5CmgiMBeXMPw== dependencies: load-json-file "^6.2.0" npm-package-arg "8.1.1" write-pkg "^4.0.0" -"@lerna/prerelease-id-from-version@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.4.3.tgz#28db7eac5bb21762f2d7562ddc5d12e8f0eced38" - integrity sha512-bXsBCv/VJrWXz2usnk52TtTb4dsXSeYDI2U1N2z/DssFKlOpH7xL1mKWC4OXE2XBqb9I49sDPfZzN8BxTfJdJQ== +"@lerna/prerelease-id-from-version@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.5.2.tgz#0d27ce30aca010266db8f0de86509b44778cc1f3" + integrity sha512-FokuA8PFH+YMlbVvPsrTWgfZzaeXDmSmXGKzF8yEM7008UOFx9a3ivDzPnRK7IDaO9nUmt++Snb3QLey1ldYlQ== dependencies: semver "^7.3.4" -"@lerna/profiler@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-5.4.3.tgz#1905e8ae96ec23681323ee6b820387689a5b06ad" - integrity sha512-6otMDwCzfWszV0K7RRjlF5gibLZt1ay+NmtrhL7TZ7PSizIJXlf6HxZiYodGgjahKAdGxx34H9XyToVzOLdg3w== +"@lerna/profiler@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-5.5.2.tgz#b977a5b59388671b9bb6b4d3a2e7ae84a228d121" + integrity sha512-030TM1sG0h/vSJ+49e8K1HtVIt94i6lOIRILTF4zkx+O00Fcg91wBtdIduKhZZt1ziWRi1v2soijKR26IDC+Tg== dependencies: fs-extra "^9.1.0" npmlog "^6.0.2" upath "^2.0.1" -"@lerna/project@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-5.4.3.tgz#48d6fffc025cb6fcb42aa75fa29582f72cd71ab3" - integrity sha512-j2EeuwdbHsL++jy0s2ShDbdOPirPOL/FNMRf7Qtwl4pEWoOiSYmv/LnIt2pV7cwww9Lx8Y682/7CQwlXdgrrMw== +"@lerna/project@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-5.5.2.tgz#02d1f031509347e62e665c862dd319703ce5528a" + integrity sha512-NtHov7CCM3DHbj6xaD9lTErOnEmz0s+piJP/nVw6aIvfkhvUl1fB6SnttM+0GHZrT6WSIXFWsb0pkRMTBn55Bw== dependencies: - "@lerna/package" "5.4.3" - "@lerna/validation-error" "5.4.3" + "@lerna/package" "5.5.2" + "@lerna/validation-error" "5.5.2" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" glob-parent "^5.1.1" globby "^11.0.2" + js-yaml "^4.1.0" load-json-file "^6.2.0" npmlog "^6.0.2" p-map "^4.0.0" resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/prompt@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-5.4.3.tgz#ace30e42f59c16a2d5c4ec663e4fc73b1f604a57" - integrity sha512-VqrTgnbm1H24aYacXmZ2z7atHO6W4NamvwHroGRFqiM34dCLQh8S22X5mNnb4nX5lgfb+doqcxBtOi91vqpJ2g== +"@lerna/prompt@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-5.5.2.tgz#d21e1ef3d18ad5cf2418c640927bbb64f54e72dd" + integrity sha512-flV5SOu9CZrTf2YxGgMPwiAsv2jkUzyIs3cTTdFhFtKoZV7YPVZkGyMhqhEMIuUCOeITFY+emar9iPS6d7U4Jg== dependencies: inquirer "^8.2.4" npmlog "^6.0.2" -"@lerna/publish@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-5.4.3.tgz#94ec4197f5e00765686512787b54fbbd83164799" - integrity sha512-SYziRvRwahzbM0A4T63FfQsk2i33cIauKXlJz6t3GQZvVzUFb0gD/baVas2V7Fs/Ty1oCqtmDKB/ABTznWYwGg== - dependencies: - "@lerna/check-working-tree" "5.4.3" - "@lerna/child-process" "5.4.3" - "@lerna/collect-updates" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/describe-ref" "5.4.3" - "@lerna/log-packed" "5.4.3" - "@lerna/npm-conf" "5.4.3" - "@lerna/npm-dist-tag" "5.4.3" - "@lerna/npm-publish" "5.4.3" - "@lerna/otplease" "5.4.3" - "@lerna/output" "5.4.3" - "@lerna/pack-directory" "5.4.3" - "@lerna/prerelease-id-from-version" "5.4.3" - "@lerna/prompt" "5.4.3" - "@lerna/pulse-till-done" "5.4.3" - "@lerna/run-lifecycle" "5.4.3" - "@lerna/run-topologically" "5.4.3" - "@lerna/validation-error" "5.4.3" - "@lerna/version" "5.4.3" +"@lerna/publish@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-5.5.2.tgz#4253ffa0bbd55b7b4380e247c6039a2f283b13a6" + integrity sha512-ZC8LP4I3nLcVIcyqiRAVvGRaCkHHBdYVcqtF7S9KA8w2VvuAeqHRFUTIhKBziVbYnwI2uzJXGIRWP50U+p/wAA== + dependencies: + "@lerna/check-working-tree" "5.5.2" + "@lerna/child-process" "5.5.2" + "@lerna/collect-updates" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/describe-ref" "5.5.2" + "@lerna/log-packed" "5.5.2" + "@lerna/npm-conf" "5.5.2" + "@lerna/npm-dist-tag" "5.5.2" + "@lerna/npm-publish" "5.5.2" + "@lerna/otplease" "5.5.2" + "@lerna/output" "5.5.2" + "@lerna/pack-directory" "5.5.2" + "@lerna/prerelease-id-from-version" "5.5.2" + "@lerna/prompt" "5.5.2" + "@lerna/pulse-till-done" "5.5.2" + "@lerna/run-lifecycle" "5.5.2" + "@lerna/run-topologically" "5.5.2" + "@lerna/validation-error" "5.5.2" + "@lerna/version" "5.5.2" fs-extra "^9.1.0" libnpmaccess "^6.0.3" npm-package-arg "8.1.1" @@ -1163,98 +1302,99 @@ pacote "^13.6.1" semver "^7.3.4" -"@lerna/pulse-till-done@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-5.4.3.tgz#0aced2e3c9d7763fd880688e10fc1b3d40158066" - integrity sha512-Twy0UmVtyFzC+sLDnuY0u37Xu17WAP7ysQ7riaLx9KhO0M9MZvoY+kDF/hg0K204tZi0dr6R5eLGEUd+Xkg9Rw== +"@lerna/pulse-till-done@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-5.5.2.tgz#b71aa52971ecfc75b756151321f0bef49d9e3ff4" + integrity sha512-e8sRby4FxSU9QjdRYXvHQtb5GMVO5XDnSH83RWdSxAVFGVEVWKqI3qg3otGH1JlD/kOu195d+ZzndF9qqMvveQ== dependencies: npmlog "^6.0.2" -"@lerna/query-graph@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-5.4.3.tgz#e9421f751039c0dfdaf5cea4f319129c534f0386" - integrity sha512-eiRsEPg+t2tN9VWXSAj2y0zEphPrOz6DdYw/5ntVFDecIfoANxGKcCkOTqb3PnaC8BojI64N3Ju+i41jcO0mLw== +"@lerna/query-graph@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-5.5.2.tgz#3bfe53430936a62c3f225cb5af91709876da982e" + integrity sha512-krKt+mvGm+9fp71ZGUO1MiUZsL+W6dAKx5kBPNWkrw5TFZCasZJHRSIqby9iXpjma+MYohjFjLVvg1PIYKt/kg== dependencies: - "@lerna/package-graph" "5.4.3" + "@lerna/package-graph" "5.5.2" -"@lerna/resolve-symlink@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-5.4.3.tgz#168f64244e87d7b9f6e89d183a70dfbf64590c20" - integrity sha512-BzqinKmTny70KgSBAaVgdLHaVR3WXRVk5EDbQHB73qg4dHiyYrzvDBqkaKzv1K1th8E4LdQQXf5LiNEbfU/1Bg== +"@lerna/resolve-symlink@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-5.5.2.tgz#ba1e3a04600b6ffae604e522e5a4abf2bf52b936" + integrity sha512-JLJg6/IFqpmGjFfKvj+lntcsGGWbIxF2uAcrVKldqwcPTmlMvolg51lL+wqII3s8N3gZIGdxhjXfhDdKuKtEzQ== dependencies: fs-extra "^9.1.0" npmlog "^6.0.2" read-cmd-shim "^3.0.0" -"@lerna/rimraf-dir@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-5.4.3.tgz#60d91a8d1de928d1a818a3e113e64707e461dbba" - integrity sha512-gBraUVczKk4Jik1+qCj4jtQ53l1zmWmMoH7A11ifYI60Dg7Mc6iQcIZOIj6siD5TSOtSCy7qePu3VyXBOIquvQ== +"@lerna/rimraf-dir@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-5.5.2.tgz#e1de764dadd7ca305d1d2698676f5fcfbe0d0ada" + integrity sha512-siE1RpEpSLFlnnbAJZz+CuBIcOqXrhR/SXVBnPDpIg4tGgHns+Q99m6K29ltuh+vZMBLMYnnyfPYitJFYTC3MQ== dependencies: - "@lerna/child-process" "5.4.3" + "@lerna/child-process" "5.5.2" npmlog "^6.0.2" path-exists "^4.0.0" rimraf "^3.0.2" -"@lerna/run-lifecycle@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-5.4.3.tgz#18aa3ebde70caf21c1d52454090419853329a48f" - integrity sha512-XKUfELNjkR6EUg+Xh92s1etjNvCbTBw20QMXDsyGSipHcLr7huXjC0D2/4/+j8/N5sz/rg+JufQfc1ldtpOU0A== +"@lerna/run-lifecycle@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-5.5.2.tgz#8a4faa272007495729b7ef39206b47cde094074a" + integrity sha512-d5pF0abAv6MVNG3xhG1BakHZtr93vIn27aqgBvu9XK1CW6GdbpBpCv1kc8RjHyOpjjFDt4+uK2TG7s7T0oCZPw== dependencies: - "@lerna/npm-conf" "5.4.3" + "@lerna/npm-conf" "5.5.2" "@npmcli/run-script" "^4.1.7" npmlog "^6.0.2" p-queue "^6.6.2" -"@lerna/run-topologically@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-5.4.3.tgz#772b97e6553bc77841582b25d97e52746754e7c6" - integrity sha512-9bT8mJ0RICIk16l8L9jRRqSXGSiLEKUd50DLz5Tv0EdOKD+prwffAivCpVMYF9tdD5UaQzDAK/VzFdS5FEzPQg== +"@lerna/run-topologically@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-5.5.2.tgz#e485f7ce859198ad0e487814ea8ca83ebcb17ada" + integrity sha512-o3XYXk7hG8ijUjejgXoa7fuQvzEohMUm4AB5SPBbvq1BhoqIZfW50KlBNjud1zVD4OsA8jJOfjItcY9KfxowuA== dependencies: - "@lerna/query-graph" "5.4.3" + "@lerna/query-graph" "5.5.2" p-queue "^6.6.2" -"@lerna/run@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-5.4.3.tgz#e011a1d11408b0cc5abe41f006df189ebcf3bfa7" - integrity sha512-PyHOYCsuJ+5r9ymjtwbQCbMMebVhaZ7Xy4jNpL9kqIvmdxe1S5QTP6Vyc6+RAvUtx0upP++0MFFA8CbZ1ZwOcw== - dependencies: - "@lerna/command" "5.4.3" - "@lerna/filter-options" "5.4.3" - "@lerna/npm-run-script" "5.4.3" - "@lerna/output" "5.4.3" - "@lerna/profiler" "5.4.3" - "@lerna/run-topologically" "5.4.3" - "@lerna/timer" "5.4.3" - "@lerna/validation-error" "5.4.3" +"@lerna/run@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-5.5.2.tgz#8449406d9257def944b9cba28c76ed12246bc8a4" + integrity sha512-KVMkjL2ehW+/6VAwTTLgq82Rgw4W6vOz1I9XwwO/bk9h7DoY1HlE8leaaYRNqT+Cv437A9AwggR+LswhoK3alA== + dependencies: + "@lerna/command" "5.5.2" + "@lerna/filter-options" "5.5.2" + "@lerna/npm-run-script" "5.5.2" + "@lerna/output" "5.5.2" + "@lerna/profiler" "5.5.2" + "@lerna/run-topologically" "5.5.2" + "@lerna/timer" "5.5.2" + "@lerna/validation-error" "5.5.2" + fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-binary@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-5.4.3.tgz#0cfe58a2781429c5dc057a1d12c67c7dbfe730c3" - integrity sha512-iXBijyb1+NiOeifnRsbicSju6/FGtv6hvNny2lbjyr0EJ8jMz6JaoQ6eep9yXhgaNRJND1Pw9JBiCv6EhhcyCw== +"@lerna/symlink-binary@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-5.5.2.tgz#0227875212576e2a20a450ebe3362bfa7708284a" + integrity sha512-fQAN0ClwlVLThqm+m9d4lIfa2TuONocdNQocmou8UBDI/C/VVW6dvD+tSL3I4jYIYJWsXJe1hBBjil4ZYXpQrQ== dependencies: - "@lerna/create-symlink" "5.4.3" - "@lerna/package" "5.4.3" + "@lerna/create-symlink" "5.5.2" + "@lerna/package" "5.5.2" fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-dependencies@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-5.4.3.tgz#856803bfca5e65824f60312e5465e9a66fc5c1c8" - integrity sha512-9fK3fIl6wyihyfKhDUquiAx8JoMjctBJ7zhLjrgOon5Ua2fyc+mVp9fTWsjHtv7IaC/TeP9oA4/IcBtdr2xieg== +"@lerna/symlink-dependencies@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-5.5.2.tgz#f97eab64a0ad0702ef2da1690e7eeafb1c4e5c29" + integrity sha512-eNIICnlUD1YCiIY50O2TKHkxXCF4rYAFOCVWTiUS098tNKLssTPnIQrK3ASKxK9t7srmfcm49LFxNRPjVKjSBw== dependencies: - "@lerna/create-symlink" "5.4.3" - "@lerna/resolve-symlink" "5.4.3" - "@lerna/symlink-binary" "5.4.3" + "@lerna/create-symlink" "5.5.2" + "@lerna/resolve-symlink" "5.5.2" + "@lerna/symlink-binary" "5.5.2" fs-extra "^9.1.0" p-map "^4.0.0" p-map-series "^2.1.0" -"@lerna/temp-write@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-5.4.3.tgz#e9562fc75eed7fbd7bedb7e164893646579411da" - integrity sha512-HgAVNmKfeRKm4QPFGFfmzVC/lA2jv5QpMXPPDahoBEI6BhYtMmHiUWQan6dfsCoSf65xDd+9NTESya9AOSbN2w== +"@lerna/temp-write@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-5.5.2.tgz#86cb3b3190bcb959d84bb2e06a910543f3957af3" + integrity sha512-K/9L+25qIw4qw/SSLxwfAWzaUE3luqGTusd3x934Hg2sBQVX28xddwaZlasQ6qen7ETp6Ec9vSVWF2ffWTxKJg== dependencies: graceful-fs "^4.1.15" is-stream "^2.0.0" @@ -1262,37 +1402,37 @@ temp-dir "^1.0.0" uuid "^8.3.2" -"@lerna/timer@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-5.4.3.tgz#8aa030d49bb2ee693b624a8a69e4c92538960e6f" - integrity sha512-0NwrCxug6pmSAuPaAHNr5VRGw7+nqikoIpwx6RViJiOD+UYFf3k955fngtSX2JhETR/7it9ncgpbaLvlxusx9g== +"@lerna/timer@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-5.5.2.tgz#d28b4c4431e2988e0c308d8c9d98c503416dae21" + integrity sha512-QcnMFwcP7xlT9DH4oGVuDYuSOfpAghG4wj7D8vN1GhJFd9ueDCzTFJpFRd6INacIbESBNMjq5WuTeNdxcDo8Fg== -"@lerna/validation-error@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-5.4.3.tgz#8a3060b466116efe8c18366a505a291e8a2e2778" - integrity sha512-edf9vbQaDViffhHqL/wHdGs83RV7uJ4N5E3VEpjXefWIUfgmw9wYjkX338WYUh/XqDYbSV6C1M8A24FT3/0uzw== +"@lerna/validation-error@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-5.5.2.tgz#6ef92fdfab30404fc7d3668499c03c5740158d81" + integrity sha512-ZffmtrgOkihUxpho529rDI0llDV9YFNJqh0qF2+doFePeTtFKkFVFHZvxP9hPZPMOLypX9OHwCVfMaTlIpIjjA== dependencies: npmlog "^6.0.2" -"@lerna/version@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-5.4.3.tgz#7c5c0888f7f162999c5b9314dd48b899c1bbea8e" - integrity sha512-a6Q+o1fZbOg/GVG8QtvfyOpX0sZ38bbI9hSJU5YMf99YKdyzp80dDDav+IGMxIaZSj08HJ1pPyXOLR27I8fTUQ== - dependencies: - "@lerna/check-working-tree" "5.4.3" - "@lerna/child-process" "5.4.3" - "@lerna/collect-updates" "5.4.3" - "@lerna/command" "5.4.3" - "@lerna/conventional-commits" "5.4.3" - "@lerna/github-client" "5.4.3" - "@lerna/gitlab-client" "5.4.3" - "@lerna/output" "5.4.3" - "@lerna/prerelease-id-from-version" "5.4.3" - "@lerna/prompt" "5.4.3" - "@lerna/run-lifecycle" "5.4.3" - "@lerna/run-topologically" "5.4.3" - "@lerna/temp-write" "5.4.3" - "@lerna/validation-error" "5.4.3" +"@lerna/version@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-5.5.2.tgz#938020878fe274d8569cbd443c4c14732afd8c67" + integrity sha512-MMO0rnC9Y8JQEl6+XJMu0JM/bWpe6mGNhQJ8C9W1hkpMwxrizhcoEFb9Vq/q/tw7DjCVc3inrb/5s50cRmrmtg== + dependencies: + "@lerna/check-working-tree" "5.5.2" + "@lerna/child-process" "5.5.2" + "@lerna/collect-updates" "5.5.2" + "@lerna/command" "5.5.2" + "@lerna/conventional-commits" "5.5.2" + "@lerna/github-client" "5.5.2" + "@lerna/gitlab-client" "5.5.2" + "@lerna/output" "5.5.2" + "@lerna/prerelease-id-from-version" "5.5.2" + "@lerna/prompt" "5.5.2" + "@lerna/run-lifecycle" "5.5.2" + "@lerna/run-topologically" "5.5.2" + "@lerna/temp-write" "5.5.2" + "@lerna/validation-error" "5.5.2" chalk "^4.1.0" dedent "^0.7.0" load-json-file "^6.2.0" @@ -1306,10 +1446,10 @@ slash "^3.0.0" write-json-file "^4.3.0" -"@lerna/write-log-file@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-5.4.3.tgz#6f721c380693ac764c00d6cc5413cffa50a972b4" - integrity sha512-S2kctFhsO4mMbR52tW9VjYrGWUMYO5YIjprg8B7vQSwYvWOOJfqOKy/A+P/U5zXuCSAbDDGssyS+CCM36MFEQw== +"@lerna/write-log-file@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-5.5.2.tgz#4ae8243b8e2821feea9f25c67488409a7fe82544" + integrity sha512-eeW10lriUl3w6WXtYk30z4rZB77QXeQCkLgSMv6Rqa7AMCTZNPhIBJQ0Nkmxo8LaFSWMhin1pLhHTYdqcsaFLA== dependencies: npmlog "^6.0.2" write-file-atomic "^4.0.1" @@ -1375,10 +1515,10 @@ treeverse "^2.0.0" walk-up-path "^1.0.0" -"@npmcli/arborist@^5.0.0", "@npmcli/arborist@^5.0.4": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.0.tgz#ace635279d0d548df164ac83464237fd5f0175ad" - integrity sha512-gM2AxWCaXTZRZnKOHT6uIUHTkvRf+UPU2iC/3nC1Bj21zemnoKyJh2NvcG69UCcfs+r1jpx6hZ0dL9s2yPssJQ== +"@npmcli/arborist@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.2.tgz#552b554f34777e5dcc8e68ad86cdaeebc0788790" + integrity sha512-Lyj2g+foWKzrwW2bT/RGO982VR9vb5tlvfD88n4PwWJRrDttQbJoIdcQzN9b+NIBhI1/8iEhC5b8far9U0fQxA== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" @@ -1388,10 +1528,10 @@ "@npmcli/name-from-folder" "^1.0.1" "@npmcli/node-gyp" "^2.0.0" "@npmcli/package-json" "^2.0.0" - "@npmcli/query" "^1.1.1" + "@npmcli/query" "^1.2.0" "@npmcli/run-script" "^4.1.3" - bin-links "^3.0.0" - cacache "^16.0.6" + bin-links "^3.0.3" + cacache "^16.1.3" common-ancestor-path "^1.0.1" json-parse-even-better-errors "^2.3.1" json-stringify-nice "^1.1.4" @@ -1401,7 +1541,7 @@ nopt "^6.0.0" npm-install-checks "^5.0.0" npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.0" + npm-pick-manifest "^7.0.2" npm-registry-fetch "^13.0.0" npmlog "^6.0.2" pacote "^13.6.1" @@ -1423,9 +1563,9 @@ integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA== "@npmcli/config@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.2.1.tgz#7a4b46f4a315fe369a3f8543c67fae0b89549a40" - integrity sha512-iJEnXNAGGr7sGUcoKmeJNrc943vFiWrDWq6DNK/t+SuqoObmozMb3tN3G5T9yo3uBf5Cw4h+SWgoqSaiwczl0Q== + version "4.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.2.2.tgz#2e3334dda84f48d059309c53d152e66b05ca24b7" + integrity sha512-5GNcLd+0c4bYBnFop53+26CO5GQP0R9YcxlernohpHDWdIgzUg9I0+GEMk3sNHnLntATVU39d283A4OO+W402w== dependencies: "@npmcli/map-workspaces" "^2.0.2" ini "^3.0.0" @@ -1526,7 +1666,7 @@ dependencies: infer-owner "^1.0.4" -"@npmcli/query@^1.1.1": +"@npmcli/query@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4" integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw== @@ -1546,19 +1686,19 @@ read-package-json-fast "^2.0.3" which "^2.0.2" -"@nrwl/cli@14.5.10": - version "14.5.10" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-14.5.10.tgz#826c06a9a272523424f0c5690f5d745260ed1ea1" - integrity sha512-GpnnKGO3+HwlMmZSStbq1MOyoDJg2I0HN4nBqM3ltaQkfxGZv3erwRMOAT+8mba2MWbJJ2QQgASAYvTscNYjOQ== +"@nrwl/cli@14.7.8": + version "14.7.8" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-14.7.8.tgz#8a2febb47ce7ea1aa63d090fbbf113c4447a85f2" + integrity sha512-QH1egjg4gSVOZXOOhECAx9c18d/TdeqhNeTw2skHww2G9IbUwgab+jqL6GSMPuuGtLs7Vagt2kUkc7aegNgUuA== dependencies: - nx "14.5.10" + nx "14.7.8" -"@nrwl/tao@14.5.10": - version "14.5.10" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-14.5.10.tgz#69c90f8b6e13f2bb521840a5903f7eb4884285ff" - integrity sha512-eWORRba0HlTNmOQFUxHqki0Z5yiRIq1Hl0taprmZpz2lgDXuzPIjGfAi5/ETy5+G5gkEyxFnCq7+SiMilPokwA== +"@nrwl/tao@14.7.8": + version "14.7.8" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-14.7.8.tgz#a9b83eb27b3f9c187efed429969d3ab798ad8ec1" + integrity sha512-pQ1eoesFKaEGWZLTAhv6Bs/2PS7GaT/jbT6ZN7ZhvYQq88DZxVb9SJkTthSaSJ22MHHevmljOeiv5onRffDsqQ== dependencies: - nx "14.5.10" + nx "14.7.8" "@octokit/auth-token@^2.4.4": version "2.5.0" @@ -1610,9 +1750,9 @@ universal-user-agent "^6.0.0" "@octokit/endpoint@^7.0.0": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.1.tgz#cb0d03e62e8762f3c80e52b025179de81899a823" - integrity sha512-/wTXAJwt0HzJ2IeE4kQXO+mBScfzyCkI0hMtkIaqyXd9zg76OpOfNQfHL9FlaxAV2RsNiOXZibVWloy8EexENg== + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.2.tgz#11ee868406ba7bb1642e61bbe676d641f79f02be" + integrity sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw== dependencies: "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" @@ -1641,10 +1781,10 @@ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== -"@octokit/openapi-types@^13.4.0": - version "13.4.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.4.0.tgz#06fe8fda93bf21bdd397fe7ef8805249efda6c06" - integrity sha512-2mVzW0X1+HDO3jF80/+QFZNzJiTefELKbhMu6yaBYbp/1gSMkVDm4rT472gJljTokWUlXaaE63m7WrWENhMDLw== +"@octokit/openapi-types@^13.11.0": + version "13.12.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.12.0.tgz#cd49f28127ee06ee3edc6f2b5f5648c7332f6014" + integrity sha512-1QYzZrwnn3rTQE7ZoSxXrO8lhu0aIbac1c+qIPOPEaVXBWSaUyLV1x9yt4uDQOwmu6u5ywVS8OJgs+ErDLf6vQ== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -1659,11 +1799,11 @@ "@octokit/types" "^6.40.0" "@octokit/plugin-paginate-rest@^4.0.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.1.0.tgz#670ac9ac369448c69a2371bfcd7e2b37d95534f2" - integrity sha512-2O5K5fpajYG5g62wjzHR7/cWYaCA88CextAW3vFP+yoIHD0KEdlVMHfM5/i5LyV+JMmqiYW7w5qfg46FR+McNw== + version "4.3.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.1.tgz#553e653ee0318605acd23bf3a799c8bfafdedae3" + integrity sha512-h8KKxESmSFTcXX409CAxlaOYscEDvN2KGQRsLCGT1NSqRW+D6EXLVQ8vuHhFznS9MuH9QYw1GfsUN30bg8hjVA== dependencies: - "@octokit/types" "^7.1.1" + "@octokit/types" "^7.5.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" @@ -1679,11 +1819,11 @@ deprecation "^2.3.1" "@octokit/plugin-rest-endpoint-methods@^6.0.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.3.0.tgz#81549334ce020169b84bd4a7fa2577e9d725d829" - integrity sha512-qEu2wn6E7hqluZwIEUnDxWROvKjov3zMIAi4H4d7cmKWNMeBprEXZzJe8pE5eStUYC1ysGhD0B7L6IeG1Rfb+g== + version "6.6.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.2.tgz#cfd1c7280940d5a82d9af12566bafcb33f22bee4" + integrity sha512-n9dL5KMpz9qVFSNdcVWC8ZPbl68QbTk7+CMPXCXqaMZOLn1n1YuoSFFCy84Ge0fx333fUqpnBHv8BFjwGtUQkA== dependencies: - "@octokit/types" "^7.0.0" + "@octokit/types" "^7.5.0" deprecation "^2.3.1" "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": @@ -1755,12 +1895,12 @@ dependencies: "@octokit/openapi-types" "^12.11.0" -"@octokit/types@^7.0.0", "@octokit/types@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.1.1.tgz#a30fd6ca3279d59d532fa75583d65d93b7588e6d" - integrity sha512-Dx6cNTORyVaKY0Yeb9MbHksk79L8GXsihbG6PtWqTpkyA2TY1qBWE26EQXVG3dHwY9Femdd/WEeRUEiD0+H3TQ== +"@octokit/types@^7.0.0", "@octokit/types@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.5.0.tgz#85646021bd618467b7cc465d9734b3f2878c9fae" + integrity sha512-aHm+olfIZjQpzoODpl+RCZzchKOrdSLJs+yfI7pMMcmB19Li6vidgx0DwUDO/Ic4Q3fq/lOjJORVCcLZefcrJw== dependencies: - "@octokit/openapi-types" "^13.4.0" + "@octokit/openapi-types" "^13.11.0" "@parcel/watcher@2.0.4": version "2.0.4" @@ -1770,10 +1910,10 @@ node-addon-api "^3.2.1" node-gyp-build "^4.3.0" -"@pkgr/utils@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.3.0.tgz#3b8491f112a80839450498816767eb03b7db6139" - integrity sha512-7dIJ9CRVzBnqyEl7diUHPUFJf/oty2SeoVzcMocc5PeOUDK9KGzvgIBjGRRzzlRDaOjh3ADwH0WeibQvi3ls2Q== +"@pkgr/utils@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.3.1.tgz#0a9b06ffddee364d6642b3cd562ca76f55b34a03" + integrity sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw== dependencies: cross-spawn "^7.0.3" is-glob "^4.0.3" @@ -1783,9 +1923,9 @@ tslib "^2.4.0" "@sinclair/typebox@^0.24.1": - version "0.24.28" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.28.tgz#15aa0b416f82c268b1573ab653e4413c965fe794" - integrity sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow== + version "0.24.42" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.42.tgz#a74b608d494a1f4cc079738e050142a678813f52" + integrity sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -1853,9 +1993,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.0.tgz#8134fd78cb39567465be65b9fdc16d378095f41f" - integrity sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw== + version "7.18.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.1.tgz#ce5e2c8c272b99b7a9fd69fa39f0b4cd85028bd9" + integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== dependencies: "@babel/types" "^7.3.0" @@ -1912,10 +2052,10 @@ dependencies: "@types/node" "*" -"@types/glob@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== +"@types/glob@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.0.0.tgz#321607e9cbaec54f687a0792b2d1d370739455d2" + integrity sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA== dependencies: "@types/minimatch" "*" "@types/node" "*" @@ -1953,13 +2093,13 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^28.1.8": - version "28.1.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" - integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== +"@types/jest@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.3.tgz#b61a5ed100850686b8d3c5e28e3a1926b2001b59" + integrity sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og== dependencies: - expect "^28.0.0" - pretty-format "^28.0.0" + expect "^29.0.0" + pretty-format "^29.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" @@ -1977,9 +2117,9 @@ integrity sha512-jD5VbvhfMhaYN4M3qPJuhMVUg3Dfc4tvPvLEAXn6GXbs/ajDFtCQahX37GIE65ipTI3I+hEvNaXS3MYAn9Ce3Q== "@types/minimatch@*": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.0.tgz#c3018161691376002f8a22ebb87f341e0dba3219" - integrity sha512-0RJHq5FqDWo17kdHe+SMDJLfxmLaqHbWnqZ6gNKzDvStUlrmx/eKIY17+ifLS1yybo7X86aUshQMlittDOVNnw== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/minimatch@^3.0.3": version "3.0.5" @@ -1999,19 +2139,19 @@ "@types/node" "*" "@types/node@*": - version "18.7.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.13.tgz#23e6c5168333480d454243378b69e861ab5c011a" - integrity sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw== + version "18.7.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154" + integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== -"@types/node@^14.18.26": - version "14.18.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.26.tgz#239e19f8b4ea1a9eb710528061c1d733dc561996" - integrity sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA== +"@types/node@^14.18.29": + version "14.18.29" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.29.tgz#a0c58d67a42f8953c13d32f0acda47ed26dfce40" + integrity sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A== "@types/node@^16.9.2": - version "16.11.56" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.56.tgz#dcbb617669481e158e0f1c6204d1c768cd675901" - integrity sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A== + version "16.11.59" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.59.tgz#823f238b9063ccc3b3b7f13186f143a57926c4f6" + integrity sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -2080,91 +2220,91 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== -"@types/yargs@^17.0.11", "@types/yargs@^17.0.8": - version "17.0.11" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.11.tgz#5e10ca33e219807c0eee0f08b5efcba9b6a42c06" - integrity sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA== +"@types/yargs@^17.0.12", "@types/yargs@^17.0.8": + version "17.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" + integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.34.0.tgz#d690f60e335596f38b01792e8f4b361d9bd0cb35" - integrity sha512-eRfPPcasO39iwjlUAMtjeueRGuIrW3TQ9WseIDl7i5UWuFbf83yYaU7YPs4j8+4CxUMIsj1k+4kV+E+G+6ypDQ== +"@typescript-eslint/eslint-plugin@^5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz#ac919a199548861012e8c1fb2ec4899ac2bc22ae" + integrity sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ== dependencies: - "@typescript-eslint/scope-manager" "5.34.0" - "@typescript-eslint/type-utils" "5.34.0" - "@typescript-eslint/utils" "5.34.0" + "@typescript-eslint/scope-manager" "5.38.0" + "@typescript-eslint/type-utils" "5.38.0" + "@typescript-eslint/utils" "5.38.0" debug "^4.3.4" - functional-red-black-tree "^1.0.1" ignore "^5.2.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.34.0.tgz#ca710858ea85dbfd30c9b416a335dc49e82dbc07" - integrity sha512-SZ3NEnK4usd2CXkoV3jPa/vo1mWX1fqRyIVUQZR4As1vyp4fneknBNJj+OFtV8WAVgGf+rOHMSqQbs2Qn3nFZQ== +"@typescript-eslint/parser@^5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.38.0.tgz#5a59a1ff41a7b43aacd1bb2db54f6bf1c02b2ff8" + integrity sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA== dependencies: - "@typescript-eslint/scope-manager" "5.34.0" - "@typescript-eslint/types" "5.34.0" - "@typescript-eslint/typescript-estree" "5.34.0" + "@typescript-eslint/scope-manager" "5.38.0" + "@typescript-eslint/types" "5.38.0" + "@typescript-eslint/typescript-estree" "5.38.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.34.0.tgz#14efd13dc57602937e25f188fd911f118781e527" - integrity sha512-HNvASMQlah5RsBW6L6c7IJ0vsm+8Sope/wu5sEAf7joJYWNb1LDbJipzmdhdUOnfrDFE6LR1j57x1EYVxrY4ow== +"@typescript-eslint/scope-manager@5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.38.0.tgz#8f0927024b6b24e28671352c93b393a810ab4553" + integrity sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA== dependencies: - "@typescript-eslint/types" "5.34.0" - "@typescript-eslint/visitor-keys" "5.34.0" + "@typescript-eslint/types" "5.38.0" + "@typescript-eslint/visitor-keys" "5.38.0" -"@typescript-eslint/type-utils@5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.34.0.tgz#7a324ab9ddd102cd5e1beefc94eea6f3eb32d32d" - integrity sha512-Pxlno9bjsQ7hs1pdWRUv9aJijGYPYsHpwMeCQ/Inavhym3/XaKt1ZKAA8FIw4odTBfowBdZJDMxf2aavyMDkLg== +"@typescript-eslint/type-utils@5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.38.0.tgz#c8b7f681da825fcfc66ff2b63d70693880496876" + integrity sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA== dependencies: - "@typescript-eslint/utils" "5.34.0" + "@typescript-eslint/typescript-estree" "5.38.0" + "@typescript-eslint/utils" "5.38.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.34.0.tgz#217bf08049e9e7b86694d982e88a2c1566330c78" - integrity sha512-49fm3xbbUPuzBIOcy2CDpYWqy/X7VBkxVN+DC21e0zIm3+61Z0NZi6J9mqPmSW1BDVk9FIOvuCFyUPjXz93sjA== +"@typescript-eslint/types@5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.38.0.tgz#8cd15825e4874354e31800dcac321d07548b8a5f" + integrity sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA== -"@typescript-eslint/typescript-estree@5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.34.0.tgz#ba7b83f4bf8ccbabf074bbf1baca7a58de3ccb9a" - integrity sha512-mXHAqapJJDVzxauEkfJI96j3D10sd567LlqroyCeJaHnu42sDbjxotGb3XFtGPYKPD9IyLjhsoULML1oI3M86A== +"@typescript-eslint/typescript-estree@5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.0.tgz#89f86b2279815c6fb7f57d68cf9b813f0dc25d98" + integrity sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg== dependencies: - "@typescript-eslint/types" "5.34.0" - "@typescript-eslint/visitor-keys" "5.34.0" + "@typescript-eslint/types" "5.38.0" + "@typescript-eslint/visitor-keys" "5.38.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.34.0.tgz#0cae98f48d8f9e292e5caa9343611b6faf49e743" - integrity sha512-kWRYybU4Rn++7lm9yu8pbuydRyQsHRoBDIo11k7eqBWTldN4xUdVUMCsHBiE7aoEkFzrUEaZy3iH477vr4xHAQ== +"@typescript-eslint/utils@5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.38.0.tgz#5b31f4896471818153790700eb02ac869a1543f4" + integrity sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.34.0" - "@typescript-eslint/types" "5.34.0" - "@typescript-eslint/typescript-estree" "5.34.0" + "@typescript-eslint/scope-manager" "5.38.0" + "@typescript-eslint/types" "5.38.0" + "@typescript-eslint/typescript-estree" "5.38.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.34.0": - version "5.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.34.0.tgz#d0fb3e31033e82ddd5de048371ad39eb342b2d40" - integrity sha512-O1moYjOSrab0a2fUvFpsJe0QHtvTC+cR+ovYpgKrAVXzqQyc74mv76TgY6z+aEtjQE2vgZux3CQVtGryqdcOAw== +"@typescript-eslint/visitor-keys@5.38.0": + version "5.38.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.0.tgz#60591ca3bf78aa12b25002c0993d067c00887e34" + integrity sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w== dependencies: - "@typescript-eslint/types" "5.34.0" + "@typescript-eslint/types" "5.38.0" eslint-visitor-keys "^3.3.0" "@webassemblyjs/ast@1.11.1": @@ -2412,17 +2552,17 @@ ajv@^8.11.0: require-from-string "^2.0.2" uri-js "^4.2.2" -all-contributors-cli@^6.20.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/all-contributors-cli/-/all-contributors-cli-6.20.0.tgz#9bc98dda38cb29cfe8afc8a78c004e14af25d2f6" - integrity sha512-trEQlL1s1u8FSWSwY2w9uL4GCG7Fo9HIW5rm5LtlE0SQHSolfXQBzJib07Qes5j52/t72wjuE6sEKkuRrwiuuQ== +all-contributors-cli@^6.20.4: + version "6.20.4" + resolved "https://registry.yarnpkg.com/all-contributors-cli/-/all-contributors-cli-6.20.4.tgz#de69d243206cb821f8c33ef0b57e9f511ceb7e25" + integrity sha512-oLOrCGh1LjR/EkaESbLe7faTX1tq8TP4pcR6CvkKED5O9E7Yahk5DiexR8roghluljwI20m2JX2I6UTYV7/tLg== dependencies: "@babel/runtime" "^7.7.6" - async "^3.0.1" + async "^3.1.0" chalk "^4.0.0" didyoumean "^1.2.1" - inquirer "^7.0.4" - json-fixer "^1.5.1" + inquirer "^7.3.3" + json-fixer "^1.6.8" lodash "^4.11.2" node-fetch "^2.6.0" pify "^5.0.0" @@ -2558,7 +2698,7 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -async@^3.0.1: +async@^3.1.0: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== @@ -2581,6 +2721,19 @@ babel-jest@^28.1.3: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.3.tgz#64e156a47a77588db6a669a88dedff27ed6e260f" + integrity sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg== + dependencies: + "@jest/transform" "^29.0.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.0.2" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" @@ -2602,6 +2755,16 @@ babel-plugin-jest-hoist@^28.1.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" + integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -2628,6 +2791,14 @@ babel-preset-jest@^28.1.3: babel-plugin-jest-hoist "^28.1.3" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" + integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== + dependencies: + babel-plugin-jest-hoist "^29.0.2" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -2643,7 +2814,7 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== -bin-links@^3.0.0: +bin-links@^3.0.0, bin-links@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== @@ -2691,15 +2862,15 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.20.2: - version "4.21.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" - integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== +browserslist@^4.14.5, browserslist@^4.21.3: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== dependencies: - caniuse-lite "^1.0.30001370" - electron-to-chromium "^1.4.202" + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" node-releases "^2.0.6" - update-browserslist-db "^1.0.5" + update-browserslist-db "^1.0.9" bser@2.1.1: version "2.1.1" @@ -2738,7 +2909,7 @@ byte-size@^7.0.0: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== -cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0, cacache@^16.1.1: +cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0, cacache@^16.1.3: version "16.1.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== @@ -2794,10 +2965,10 @@ camelcase@^6.2.0, camelcase@^6.3.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001370: - version "1.0.30001382" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001382.tgz#4d37f0d0b6fffb826c8e5e1c0f4bf8ce592db949" - integrity sha512-2rtJwDmSZ716Pxm1wCtbPvHtbDWAreTPxXbkc5RkKglow3Ig/4GNGazDI9/BVnXbG/wnv6r3B5FEbkfg9OcTGg== +caniuse-lite@^1.0.30001400: + version "1.0.30001409" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" + integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== case@^1.6.3: version "1.6.3" @@ -2870,9 +3041,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== + version "3.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.4.0.tgz#b28484fd436cbc267900364f096c9dc185efb251" + integrity sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug== cidr-regex@^3.1.1: version "3.1.1" @@ -2917,9 +3088,9 @@ cli-spinners@^2.5.0: integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-table3@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -3439,12 +3610,17 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.0.0, diff@^5.1.0: +diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== @@ -3507,10 +3683,10 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -electron-to-chromium@^1.4.202: - version "1.4.228" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.228.tgz#3baff13cf54198c2045f9bdd8b64db93aafd7f33" - integrity sha512-XfDHCvou7CsDMlFwb0WZ1tWmW48e7Sn7VBRyPfZsZZila9esRsJl1trO+OqDNV97GggFSt0ISbWslKXfQkG//g== +electron-to-chromium@^1.4.251: + version "1.4.256" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.256.tgz#c735032f412505e8e0482f147a8ff10cfca45bf4" + integrity sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw== emittery@^0.10.2: version "0.10.2" @@ -3579,15 +3755,15 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + version "1.20.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" + integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.2" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" @@ -3599,9 +3775,9 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19 is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" @@ -3661,10 +3837,10 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-import-resolver-typescript@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.0.tgz#490ba48cafc5a2fb209bbc7e360defb4c292ed59" - integrity sha512-DEfpfuk+O/T5e9HBZOxocmwMuUGkvQQd5WRiMJF9kKNT9amByqOyGlWoAZAQiv0SZSy4GMtG1clmnvQA/RzA0A== +eslint-import-resolver-typescript@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.1.tgz#c72634da072eebd04fe73007fa58a62c333c8147" + integrity sha512-U7LUjNJPYjNsHvAUAkt/RU3fcTSpbllA0//35B4eLYTX74frmOepbt7F7J3D1IGtj9k21buOpaqtDd4ZlS/BYQ== dependencies: debug "^4.3.4" enhanced-resolve "^5.10.0" @@ -3740,14 +3916,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.22.0: - version "8.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" - integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== +eslint@^8.23.1: + version "8.23.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" + integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== dependencies: - "@eslint/eslintrc" "^1.3.0" + "@eslint/eslintrc" "^1.3.2" "@humanwhocodes/config-array" "^0.10.4" "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -3757,13 +3934,12 @@ eslint@^8.22.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.3" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.15.0" globby "^11.1.0" @@ -3772,6 +3948,7 @@ eslint@^8.22.0: import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -3783,12 +3960,11 @@ eslint@^8.22.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.2, espree@^9.3.3: - version "9.3.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" - integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -3858,7 +4034,7 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^28.0.0, expect@^28.1.3: +expect@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== @@ -3869,6 +4045,17 @@ expect@^28.0.0, expect@^28.1.3: jest-message-util "^28.1.3" jest-util "^28.1.3" +expect@^29.0.0, expect@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" + integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== + dependencies: + "@jest/expect-utils" "^29.0.3" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -3899,10 +4086,10 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3910,7 +4097,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -4073,11 +4260,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -4107,10 +4289,10 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -4186,20 +4368,20 @@ git-semver-tags@^4.0.0, git-semver-tags@^4.1.1: meow "^8.0.0" semver "^6.0.0" -git-up@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" - integrity sha512-6RUFSNd1c/D0xtGnyWN2sxza2bZtZ/EmI9448n6rCZruFwV/ezeEn2fJP7XnUQGwf0RAtd/mmUCbtH6JPYA2SA== +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== dependencies: is-ssh "^1.4.0" - parse-url "^7.0.2" + parse-url "^8.1.0" -git-url-parse@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-12.0.0.tgz#4ba70bc1e99138321c57e3765aaf7428e5abb793" - integrity sha512-I6LMWsxV87vysX1WfsoglXsXg6GjQRKq7+Dgiseo+h0skmp5Hp2rzmcEIRQot9CPA+uzU7x1x7jZdqvTFGnB+Q== +git-url-parse@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== dependencies: - git-up "^6.0.0" + git-up "^7.0.0" gitconfiglocal@^1.0.0: version "1.0.0" @@ -4399,7 +4581,7 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hosted-git-info@^5.0.0: +hosted-git-info@^5.0.0, hosted-git-info@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.1.0.tgz#9786123f92ef3627f24abc3f15c20d98ec4a6594" integrity sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q== @@ -4525,7 +4707,7 @@ ini@^1.3.2, ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -ini@^3.0.0: +ini@^3.0.0, ini@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== @@ -4543,7 +4725,7 @@ init-package-json@^3.0.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^4.0.0" -inquirer@^7.0.4: +inquirer@^7.3.3: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== @@ -4635,9 +4817,9 @@ is-boolean-object@^1.1.0: has-tostringtag "^1.0.0" is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + version "1.2.6" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.6.tgz#fd6170b0b8c7e2cc73de342ef8284a2202023c44" + integrity sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q== is-ci@^2.0.0: version "2.0.0" @@ -4882,10 +5064,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== +jest-changed-files@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.0.0.tgz#aa238eae42d9372a413dd9a8dadc91ca1806dce0" + integrity sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ== dependencies: execa "^5.0.0" p-limit "^3.1.0" @@ -4915,21 +5097,46 @@ jest-circus@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== +jest-circus@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.3.tgz#90faebc90295291cfc636b27dbd82e3bfb9e7a48" + integrity sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg== dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.0.3" + "@jest/expect" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + is-generator-fn "^2.0.0" + jest-each "^29.0.3" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-runtime "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" + p-limit "^3.1.0" + pretty-format "^29.0.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.3.tgz#fd8f0ef363a7a3d9c53ef62e0651f18eeffa77b9" + integrity sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ== + dependencies: + "@jest/core" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-config "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" prompts "^2.0.1" yargs "^17.3.1" @@ -4961,6 +5168,34 @@ jest-config@^28.1.3: slash "^3.0.0" strip-json-comments "^3.1.1" +jest-config@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.3.tgz#c2e52a8f5adbd18de79f99532d8332a19e232f13" + integrity sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.0.3" + "@jest/types" "^29.0.3" + babel-jest "^29.0.3" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.0.3" + jest-environment-node "^29.0.3" + jest-get-type "^29.0.0" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.3" + jest-runner "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.0.3" + slash "^3.0.0" + strip-json-comments "^3.1.1" + jest-diff@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" @@ -4971,6 +5206,16 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-diff@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" + integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.3" + jest-docblock@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" @@ -4978,6 +5223,13 @@ jest-docblock@^28.1.1: dependencies: detect-newline "^3.0.0" +jest-docblock@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae" + integrity sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw== + dependencies: + detect-newline "^3.0.0" + jest-each@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" @@ -4989,6 +5241,17 @@ jest-each@^28.1.3: jest-util "^28.1.3" pretty-format "^28.1.3" +jest-each@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.3.tgz#7ef3157580b15a609d7ef663dd4fc9b07f4e1299" + integrity sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg== + dependencies: + "@jest/types" "^29.0.3" + chalk "^4.0.0" + jest-get-type "^29.0.0" + jest-util "^29.0.3" + pretty-format "^29.0.3" + jest-environment-node@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" @@ -5001,16 +5264,33 @@ jest-environment-node@^28.1.3: jest-mock "^28.1.3" jest-util "^28.1.3" -jest-expect-message@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jest-expect-message/-/jest-expect-message-1.0.2.tgz#6d67cdf093457a607d231038a3b84aa3a076bcba" - integrity sha512-WFiXMgwS2lOqQZt1iJMI/hOXpUm32X+ApsuzYcQpW5m16Pv6/Gd9kgC+Q+Q1YVNU04kYcAOv9NXMnjg6kKUy6Q== +jest-environment-node@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.3.tgz#293804b1e0fa5f0e354dacbe510655caa478a3b2" + integrity sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg== + dependencies: + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + jest-mock "^29.0.3" + jest-util "^29.0.3" + +jest-expect-message@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/jest-expect-message/-/jest-expect-message-1.1.2.tgz#55e5f2c2a970a939b8772664f2c47ec24751edde" + integrity sha512-0rGSMkJdc3uupzkPxtkZKBKY1Cb4VD4VxJP5sTRfFpVRe6fT7C9ItGwEeitJXIVzp4rKGgwkUFo1/+iQ02fZZA== jest-get-type@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== + jest-haste-map@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" @@ -5030,6 +5310,25 @@ jest-haste-map@^28.1.3: optionalDependencies: fsevents "^2.3.2" +jest-haste-map@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.3.tgz#d7f3f7180f558d760eacc5184aac5a67f20ef939" + integrity sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A== + dependencies: + "@jest/types" "^29.0.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.0.0" + jest-util "^29.0.3" + jest-worker "^29.0.3" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + jest-leak-detector@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" @@ -5038,6 +5337,14 @@ jest-leak-detector@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-leak-detector@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz#e85cf3391106a7a250850b6766b508bfe9c7bc6f" + integrity sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ== + dependencies: + jest-get-type "^29.0.0" + pretty-format "^29.0.3" + jest-matcher-utils@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" @@ -5048,6 +5355,16 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-matcher-utils@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" + integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== + dependencies: + chalk "^4.0.0" + jest-diff "^29.0.3" + jest-get-type "^29.0.0" + pretty-format "^29.0.3" + jest-message-util@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" @@ -5063,6 +5380,21 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" + integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" @@ -5071,6 +5403,14 @@ jest-mock@^28.1.3: "@jest/types" "^28.1.3" "@types/node" "*" +jest-mock@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.3.tgz#4f0093f6a9cb2ffdb9c44a07a3912f0c098c8de9" + integrity sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww== + dependencies: + "@jest/types" "^29.0.3" + "@types/node" "*" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -5081,13 +5421,18 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== +jest-regex-util@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" + integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== + +jest-resolve-dependencies@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz#f23a54295efc6374b86b198cf8efed5606d6b762" + integrity sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw== dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" + jest-regex-util "^29.0.0" + jest-snapshot "^29.0.3" jest-resolve@^28.1.3: version "28.1.3" @@ -5104,6 +5449,21 @@ jest-resolve@^28.1.3: resolve.exports "^1.1.0" slash "^3.0.0" +jest-resolve@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.3.tgz#329a3431e3b9eb6629a2cd483e9bed95b26827b9" + integrity sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.0.3" + jest-pnp-resolver "^1.2.2" + jest-util "^29.0.3" + jest-validate "^29.0.3" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + jest-runner@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" @@ -5131,6 +5491,33 @@ jest-runner@^28.1.3: p-limit "^3.1.0" source-map-support "0.5.13" +jest-runner@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.3.tgz#2e47fe1e8777aea9b8970f37e8f83630b508fb87" + integrity sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw== + dependencies: + "@jest/console" "^29.0.3" + "@jest/environment" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.10.2" + graceful-fs "^4.2.9" + jest-docblock "^29.0.0" + jest-environment-node "^29.0.3" + jest-haste-map "^29.0.3" + jest-leak-detector "^29.0.3" + jest-message-util "^29.0.3" + jest-resolve "^29.0.3" + jest-runtime "^29.0.3" + jest-util "^29.0.3" + jest-watcher "^29.0.3" + jest-worker "^29.0.3" + p-limit "^3.1.0" + source-map-support "0.5.13" + jest-runtime@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" @@ -5159,6 +5546,34 @@ jest-runtime@^28.1.3: slash "^3.0.0" strip-bom "^4.0.0" +jest-runtime@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.3.tgz#5a823ec5902257519556a4e5a71a868e8fd788aa" + integrity sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ== + dependencies: + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/globals" "^29.0.3" + "@jest/source-map" "^29.0.0" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.0.3" + jest-message-util "^29.0.3" + jest-mock "^29.0.3" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" + slash "^3.0.0" + strip-bom "^4.0.0" + jest-snapshot@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" @@ -5188,6 +5603,36 @@ jest-snapshot@^28.1.3: pretty-format "^28.1.3" semver "^7.3.5" +jest-snapshot@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.3.tgz#0a024706986a915a6eefae74d7343069d2fc8eef" + integrity sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/babel__traverse" "^7.0.6" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.0.3" + graceful-fs "^4.2.9" + jest-diff "^29.0.3" + jest-get-type "^29.0.0" + jest-haste-map "^29.0.3" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + natural-compare "^1.4.0" + pretty-format "^29.0.3" + semver "^7.3.5" + jest-util@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" @@ -5200,6 +5645,18 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" +jest-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" + integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== + dependencies: + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + jest-validate@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" @@ -5212,6 +5669,18 @@ jest-validate@^28.1.3: leven "^3.1.0" pretty-format "^28.1.3" +jest-validate@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.3.tgz#f9521581d7344685428afa0a4d110e9c519aeeb6" + integrity sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw== + dependencies: + "@jest/types" "^29.0.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.0.0" + leven "^3.1.0" + pretty-format "^29.0.3" + jest-watcher@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" @@ -5226,6 +5695,20 @@ jest-watcher@^28.1.3: jest-util "^28.1.3" string-length "^4.0.1" +jest-watcher@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.3.tgz#8e220d1cc4f8029875e82015d084cab20f33d57f" + integrity sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw== + dependencies: + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^29.0.3" + string-length "^4.0.1" + jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -5244,15 +5727,29 @@ jest-worker@^28.1.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== +jest-worker@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.3.tgz#c2ba0aa7e41eec9eb0be8e8a322ae6518df72647" + integrity sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng== dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.3.tgz#5227a0596d30791b2649eea347e4aa97f734944d" + integrity sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ== + dependencies: + "@jest/core" "^29.0.3" + "@jest/types" "^29.0.3" import-local "^3.0.2" - jest-cli "^28.1.3" + jest-cli "^29.0.3" + +js-sdsl@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" + integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== js-tokens@^4.0.0: version "4.0.0" @@ -5279,12 +5776,12 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-fixer@^1.5.1: - version "1.6.14" - resolved "https://registry.yarnpkg.com/json-fixer/-/json-fixer-1.6.14.tgz#766f0ebab850ef9eba4067b20554b1ba94d58520" - integrity sha512-9VINeH7NYVcdoNybe82oubnm9WqsJ0GsPppIqPQgxrjoUxwMq5ObCE8d+39CBBDnb/TPi9ymRCJ5twklYebdqQ== +json-fixer@^1.6.8: + version "1.6.15" + resolved "https://registry.yarnpkg.com/json-fixer/-/json-fixer-1.6.15.tgz#f1f03b6771fcb383695d458c53e50b10999fba7f" + integrity sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw== dependencies: - "@babel/runtime" "^7.17.9" + "@babel/runtime" "^7.18.9" chalk "^4.1.2" pegjs "^0.10.0" @@ -5381,30 +5878,31 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -lerna@^5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-5.4.3.tgz#a0a7f24de87b7e4dc4eed5547c07c5dc0865d785" - integrity sha512-PypijMk4Jii8DoWGRLiHhBUaqpjXAmrwbs6uUZgyb07JrqCrXW3nhAyzdZE5S0rk1/sRzjd10fYmntOgNFfKBw== - dependencies: - "@lerna/add" "5.4.3" - "@lerna/bootstrap" "5.4.3" - "@lerna/changed" "5.4.3" - "@lerna/clean" "5.4.3" - "@lerna/cli" "5.4.3" - "@lerna/create" "5.4.3" - "@lerna/diff" "5.4.3" - "@lerna/exec" "5.4.3" - "@lerna/import" "5.4.3" - "@lerna/info" "5.4.3" - "@lerna/init" "5.4.3" - "@lerna/link" "5.4.3" - "@lerna/list" "5.4.3" - "@lerna/publish" "5.4.3" - "@lerna/run" "5.4.3" - "@lerna/version" "5.4.3" +lerna@^5.5.2: + version "5.5.2" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-5.5.2.tgz#3b96ea81bb71a0e57c110b64c6dc2cc58d7acca9" + integrity sha512-P0ThZMfWJ4BP9xRbXaLyoOCYjlPN615FRV2ZBnTBA12lw32IlcREIgvF0N1zZX7wXtsmN56rU3CABoJ5lU8xuw== + dependencies: + "@lerna/add" "5.5.2" + "@lerna/bootstrap" "5.5.2" + "@lerna/changed" "5.5.2" + "@lerna/clean" "5.5.2" + "@lerna/cli" "5.5.2" + "@lerna/create" "5.5.2" + "@lerna/diff" "5.5.2" + "@lerna/exec" "5.5.2" + "@lerna/import" "5.5.2" + "@lerna/info" "5.5.2" + "@lerna/init" "5.5.2" + "@lerna/link" "5.5.2" + "@lerna/list" "5.5.2" + "@lerna/publish" "5.5.2" + "@lerna/run" "5.5.2" + "@lerna/version" "5.5.2" import-local "^3.0.2" npmlog "^6.0.2" - nx ">=14.5.4 < 16" + nx ">=14.6.1 < 16" + typescript "^3 || ^4" leven@^3.1.0: version "3.1.0" @@ -5419,36 +5917,36 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -libnpmaccess@^6.0.2, libnpmaccess@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded" - integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg== +libnpmaccess@^6.0.3, libnpmaccess@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" + integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== dependencies: aproba "^2.0.0" minipass "^3.1.1" npm-package-arg "^9.0.1" npm-registry-fetch "^13.0.0" -libnpmdiff@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.4.tgz#487ccb609dacd7f558f089feef3153933e157d02" - integrity sha512-bUz12309DdkeFL/K0sKhW1mbg8DARMbNI0vQKrJp1J8lxhxqkAjzSQ3eQCacFjSwCz4xaf630ogwuOkSt61ZEQ== +libnpmdiff@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0" + integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw== dependencies: "@npmcli/disparity-colors" "^2.0.0" "@npmcli/installed-package-contents" "^1.0.7" binary-extensions "^2.2.0" - diff "^5.0.0" + diff "^5.1.0" minimatch "^5.0.1" npm-package-arg "^9.0.1" pacote "^13.6.1" tar "^6.1.0" -libnpmexec@^4.0.2: - version "4.0.11" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.11.tgz#3307fd7b683630268237936a921f5faadd5bfaef" - integrity sha512-uhkAWVT0pA1kVgqgTjIMVebOPl3PpIvVcRQ1IBV47ppVxmQr+JCjDahrV0K/0JUsKSVFozyGEEmg1Kz0HwRwzw== +libnpmexec@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.13.tgz#6688bd6c02cac31a32d2e56680c3884948cbf453" + integrity sha512-MGi6eD6zqZ1V8VCJenWRc2+rWaFiW/Vkr5Aa/cQAd3duWNvXen9sm101M6ww5ER5PmsT+qX2aZOA3A9ZPfJQXg== dependencies: - "@npmcli/arborist" "^5.0.0" + "@npmcli/arborist" "^5.6.2" "@npmcli/ci-detect" "^2.0.0" "@npmcli/fs" "^2.1.1" "@npmcli/run-script" "^4.2.0" @@ -5463,42 +5961,42 @@ libnpmexec@^4.0.2: semver "^7.3.7" walk-up-path "^1.0.0" -libnpmfund@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.2.tgz#7da0827950f0db2cce0acb0dc7652d1834a8b239" - integrity sha512-wmFMP/93Wjy+jDg5LaSldDgAhSgCyA64JUUmp806Kae7y3YP9Qv5m1vUhPxT4yebxgB2v/I6G1/RUcNb1y0kVg== +libnpmfund@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.4.tgz#be1fd46bcfa9432660f98d935135d7ee3e620239" + integrity sha512-azKUVFkL27AsvzEzLKMHX/L8j/GE2TL6eZ6KIdc9hsvleoNLT+Y6XO9w9v7JWwg03smZK9dbqwvnYZzO3vzrIA== dependencies: - "@npmcli/arborist" "^5.0.0" + "@npmcli/arborist" "^5.6.2" -libnpmhook@^8.0.2: - version "8.0.3" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.3.tgz#9628518a63455d21dafda312ee46175275707ff5" - integrity sha512-TEdNI1mC5zS+w/juCgxrwwQnpbq9lY76NDOS0N37pn6pWIUxB1Yq8mwy6MUEXR1TgH4HurSQyKT6I6Kp9Wjm4A== +libnpmhook@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87" + integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmorg@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.3.tgz#a85cbdb3665ad4f7c7279d239a4581ec2eeef5a6" - integrity sha512-r4CpmCEF+e5PbFMBi64xSXmqn0uGgV4T7NWpGL4/A6KT/DTtIxALILQZq+l0ZdN1xm4RjOvqSDR22oT4il8rAQ== +libnpmorg@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311" + integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmpack@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.2.tgz#9234a3b1ae433f922c19e97cd3a8a0b135b5f4cc" - integrity sha512-megSAPeZGv9jnDM4KovKbczjyuy/EcPxCIU/iaWsDU1IEAVtBJ0qHqNUm5yN2AgN501Tb3CL6KeFGYdG4E31rQ== +libnpmpack@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2" + integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w== dependencies: "@npmcli/run-script" "^4.1.3" npm-package-arg "^9.0.1" pacote "^13.6.1" -libnpmpublish@^6.0.2, libnpmpublish@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b" - integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg== +libnpmpublish@^6.0.4, libnpmpublish@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" + integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== dependencies: normalize-package-data "^4.0.0" npm-package-arg "^9.0.1" @@ -5506,25 +6004,25 @@ libnpmpublish@^6.0.2, libnpmpublish@^6.0.4: semver "^7.3.7" ssri "^9.0.0" -libnpmsearch@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.3.tgz#ed502a4c2c70ea36723180455fae1357546b2184" - integrity sha512-Ofq76qKAPhxbiyzPf/5LPjJln26VTKwU9hIU0ACxQ6tNtBJ1CHmI7iITrdp7vNezhZc0FlkXwrIpqXjhBJZgLQ== +libnpmsearch@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81" + integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg== dependencies: npm-registry-fetch "^13.0.0" -libnpmteam@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.3.tgz#9335fbbd032b3770f5c9b7ffc6203f47d1ed144a" - integrity sha512-LsYYLz4TlTpcqkusInY5MhKjiHFaCx1GV0LmydXJ/QMh+3IWBJpUhes4ynTZuFoJKkDIFjxyMU09ul+RZixgdg== +libnpmteam@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef" + integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmversion@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.6.tgz#a4a476d38a44d38db9ac424a5e7334479e7fb8b9" - integrity sha512-+lI+AO7cZwDxyAeWCIR8+n9XEfgSDAqmNbv4zy+H6onGthsk/+E3aa+5zIeBpyG5g268zjpc0qrBch0Q3w0nBA== +libnpmversion@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d" + integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA== dependencies: "@npmcli/git" "^3.0.0" "@npmcli/run-script" "^4.1.3" @@ -5609,7 +6107,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.11.2, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: +lodash@^4.11.2, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6051,11 +6549,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - npm-audit-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6" @@ -6063,13 +6556,20 @@ npm-audit-report@^3.0.0: dependencies: chalk "^4.0.0" -npm-bundled@^1.1.1, npm-bundled@^1.1.2: +npm-bundled@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + npm-install-checks@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" @@ -6107,22 +6607,22 @@ npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: validate-npm-package-name "^4.0.0" npm-packlist@^5.1.0, npm-packlist@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.2.tgz#bbca5715020696953fd2862cbc89cbf2d7ee4875" - integrity sha512-rQiBDNmt1H1jNhFEo9ilTD7ZJXd6cvHSmBK+waIBu886v6OyLWjZqb1RD9viR7rgG0AAe29FYnOXcO26TRxT/Q== + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== dependencies: glob "^8.0.1" ignore-walk "^5.0.1" - npm-bundled "^1.1.2" + npm-bundled "^2.0.0" npm-normalize-package-bin "^2.0.0" -npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz#76dda30a7cd6b99be822217a935c2f5eacdaca4c" - integrity sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg== +npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== dependencies: npm-install-checks "^5.0.0" - npm-normalize-package-bin "^1.0.1" + npm-normalize-package-bin "^2.0.0" npm-package-arg "^9.0.0" semver "^7.3.5" @@ -6159,13 +6659,13 @@ npm-user-validate@^1.0.1: resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== -npm@^8.18.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-8.18.0.tgz#bd6ca7f637720441f812370363e2ae67426fb42f" - integrity sha512-G07/yKvNUwhwxYhk8BxcuDPB/4s+y755i6CnH3lf9LQBHP5siUx66WbuNGWEnN3xaBER4+IR3OWApKX7eBO5Dw== +npm@^8.19.2: + version "8.19.2" + resolved "https://registry.yarnpkg.com/npm/-/npm-8.19.2.tgz#db90e88584d065f51b069ab46b4f02f5cf4898b7" + integrity sha512-MWkISVv5f7iZbfNkry5/5YBqSYJEDAKSJdL+uzSQuyLg+hgLQUyZynu3SH6bOZlvR9ZvJYk2EiJO6B1r+ynwHg== dependencies: "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/arborist" "^5.0.4" + "@npmcli/arborist" "^5.6.2" "@npmcli/ci-detect" "^2.0.0" "@npmcli/config" "^4.2.1" "@npmcli/fs" "^2.1.0" @@ -6174,7 +6674,7 @@ npm@^8.18.0: "@npmcli/run-script" "^4.2.1" abbrev "~1.1.1" archy "~1.0.0" - cacache "^16.1.1" + cacache "^16.1.3" chalk "^4.1.2" chownr "^2.0.0" cli-columns "^4.0.0" @@ -6183,22 +6683,22 @@ npm@^8.18.0: fastest-levenshtein "^1.0.12" glob "^8.0.1" graceful-fs "^4.2.10" - hosted-git-info "^5.0.0" - ini "^3.0.0" + hosted-git-info "^5.1.0" + ini "^3.0.1" init-package-json "^3.0.2" is-cidr "^4.0.2" json-parse-even-better-errors "^2.3.1" - libnpmaccess "^6.0.2" - libnpmdiff "^4.0.2" - libnpmexec "^4.0.2" - libnpmfund "^3.0.1" - libnpmhook "^8.0.2" - libnpmorg "^4.0.2" - libnpmpack "^4.0.2" - libnpmpublish "^6.0.2" - libnpmsearch "^5.0.2" - libnpmteam "^4.0.2" - libnpmversion "^3.0.1" + libnpmaccess "^6.0.4" + libnpmdiff "^4.0.5" + libnpmexec "^4.0.13" + libnpmfund "^3.0.4" + libnpmhook "^8.0.4" + libnpmorg "^4.0.4" + libnpmpack "^4.1.3" + libnpmpublish "^6.0.5" + libnpmsearch "^5.0.4" + libnpmteam "^4.0.4" + libnpmversion "^3.0.7" make-fetch-happen "^10.2.0" minipass "^3.1.6" minipass-pipeline "^1.2.4" @@ -6210,7 +6710,7 @@ npm@^8.18.0: npm-audit-report "^3.0.0" npm-install-checks "^5.0.0" npm-package-arg "^9.1.0" - npm-pick-manifest "^7.0.1" + npm-pick-manifest "^7.0.2" npm-profile "^6.2.0" npm-registry-fetch "^13.3.1" npm-user-validate "^1.0.1" @@ -6222,7 +6722,7 @@ npm@^8.18.0: proc-log "^2.0.1" qrcode-terminal "^0.12.0" read "~1.0.7" - read-package-json "^5.0.1" + read-package-json "^5.0.2" read-package-json-fast "^2.0.3" readdir-scoped-modules "^1.1.0" rimraf "^3.0.2" @@ -6246,13 +6746,13 @@ npmlog@^6.0.0, npmlog@^6.0.2: gauge "^4.0.3" set-blocking "^2.0.0" -nx@14.5.10, "nx@>=14.5.4 < 16": - version "14.5.10" - resolved "https://registry.yarnpkg.com/nx/-/nx-14.5.10.tgz#cc950bcc2d867f0aa4e86a508842a9299650fbb9" - integrity sha512-dqiV+zY32k98mfKFTgiQyYd9HYZmB1zoJj6gYniEuqzs6CKp8ZSpeRDaVQRxR6wEMvW9MSTA9kBg8sJ78W/NZg== +nx@14.7.8, "nx@>=14.6.1 < 16": + version "14.7.8" + resolved "https://registry.yarnpkg.com/nx/-/nx-14.7.8.tgz#89348d0161c967c2122b42d8db0cf0454e88c255" + integrity sha512-fSnjS7R1iB9ZtsZ4HPkt/xwl8Z+SfgXY6bH99LCAL2KniaMxbnoU5S3N+WbIZb6KnXQjl/rCxTZYoQaRL7C8pQ== dependencies: - "@nrwl/cli" "14.5.10" - "@nrwl/tao" "14.5.10" + "@nrwl/cli" "14.7.8" + "@nrwl/tao" "14.7.8" "@parcel/watcher" "2.0.4" chalk "4.1.0" chokidar "^3.5.1" @@ -6282,7 +6782,7 @@ nx@14.5.10, "nx@>=14.5.4 < 16": yargs "^17.4.0" yargs-parser "21.0.1" -object-inspect@^1.12.0, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -6292,7 +6792,7 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2: +object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -6540,22 +7040,19 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-5.0.0.tgz#f933152f3c6d34f4cf36cfc3d07b138ac113649d" - integrity sha512-qOpH55/+ZJ4jUu/oLO+ifUKjFPNZGfnPJtzvGzKN/4oLMil5m9OH4VpOj6++9/ytJcfks4kzH2hhi87GL/OU9A== +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== dependencies: protocols "^2.0.0" -parse-url@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-7.0.2.tgz#d21232417199b8d371c6aec0cedf1406fd6393f0" - integrity sha512-PqO4Z0eCiQ08Wj6QQmrmp5YTTxpYfONdOEamrtvK63AmzXpcavIVQubGHxOEwiIoDZFb8uDOoQFS0NCcjqIYQg== +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== dependencies: - is-ssh "^1.4.0" - normalize-url "^6.1.0" - parse-path "^5.0.0" - protocols "^2.0.1" + parse-path "^7.0.0" path-equal@^1.1.2: version "1.2.2" @@ -6671,7 +7168,7 @@ prettier@^2.7.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^28.0.0, pretty-format@^28.1.3: +pretty-format@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== @@ -6681,6 +7178,15 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.0.0, pretty-format@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" + integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== + dependencies: + "@jest/schemas" "^29.0.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + proc-log@^2.0.0, proc-log@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" @@ -6739,15 +7245,15 @@ protocols@^2.0.0, protocols@^2.0.1: resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pyright@^1.1.268: - version "1.1.268" - resolved "https://registry.yarnpkg.com/pyright/-/pyright-1.1.268.tgz#aade14829a89ddbccb8303bdfb417b6f88f58f55" - integrity sha512-X+8N4BD4mCKFP5pjE5nGSHXz1ysIwCXS6t2Lnxz3kt85mOzh9Q2GNBNPYEW4svuRjfJm/8f7MIc4jyHFjsJwSw== +pyright@^1.1.272: + version "1.1.272" + resolved "https://registry.yarnpkg.com/pyright/-/pyright-1.1.272.tgz#1717751f4ce0a3d5ad9757d8b287f41e69ddbf45" + integrity sha512-32AEfp7JwZ7aaSFoAObvw9CRNyctZT7UIs+4O2bBhAg1+2UaVRXUTbBeKqJD+hTuA9I+HYOLaCJWcGug70R7LA== q@^1.5.1: version "1.5.1" @@ -6794,7 +7300,7 @@ read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^5.0.0, read-package-json@^5.0.1: +read-package-json@^5.0.0, read-package-json@^5.0.1, read-package-json@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== @@ -7043,9 +7549,9 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-stable-stringify@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz#95fadb1bcf8057a1363e11052122f5da36a69215" + integrity sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" @@ -7470,9 +7976,9 @@ supports-color@^8.0.0: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -7483,11 +7989,11 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== synckit@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.3.tgz#f36ca23fb7cbcf2b2b78c9e553ce6764dc6aa415" - integrity sha512-1goXnDYNJlKwCM37f5MTzRwo+8SqutgVtg2d37D6YnHHT4E3IhQMRfKiGdfTZU7LBlI6T8inCQUxnMBFHrbqWw== + version "0.8.4" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec" + integrity sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw== dependencies: - "@pkgr/utils" "^2.3.0" + "@pkgr/utils" "^2.3.1" tslib "^2.4.0" tablemark@^2.0.0: @@ -7540,9 +8046,9 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@^5.1.3: - version "5.3.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz#f7d82286031f915a4f8fb81af4bd35d2e3c011bc" - integrity sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA== + version "5.3.6" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" + integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== dependencies: "@jridgewell/trace-mapping" "^0.3.14" jest-worker "^27.4.5" @@ -7643,13 +8149,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -7779,6 +8278,11 @@ typescript-json-schema@^0.54.0: typescript "~4.6.0" yargs "^17.1.1" +"typescript@^3 || ^4": + version "4.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" + integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== + typescript@~3.9.10: version "3.9.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" @@ -7795,9 +8299,9 @@ typescript@~4.7.4: integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== uglify-js@^3.1.4: - version "3.17.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.0.tgz#55bd6e9d19ce5eef0d5ad17cd1f587d85b180a85" - integrity sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg== + version "3.17.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.1.tgz#1258a2a488147a8266b3034499ce6959978ba7f4" + integrity sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q== unbox-primitive@^1.0.2: version "1.0.2" @@ -7810,16 +8314,16 @@ unbox-primitive@^1.0.2: which-boxed-primitive "^1.0.2" unique-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.0.tgz#c844c84c3b22e92038b0c53950f9dc34d2b55490" - integrity sha512-tpzoz2RpZ//6Zt4GPpOFTyrnfZuSvjIfe8lvx6Thp4yTQwJtAFwPlssEBE62VhGA2We5/COyNpcIu+OABu3/Yg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== dependencies: - unique-slug "^2.0.2" + unique-slug "^3.0.0" -unique-slug@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== dependencies: imurmurhash "^0.1.4" @@ -7843,10 +8347,10 @@ upath@^2.0.1: resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -update-browserslist-db@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" - integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== +update-browserslist-db@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" + integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -7885,7 +8389,7 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@2.3.0, v8-compile-cache@^2.0.3: +v8-compile-cache@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== @@ -7953,11 +8457,6 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - webpack-cli@^4.10.0: version "4.10.0" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" @@ -8027,15 +8526,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^8.4.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"