diff --git a/.all-contributorsrc b/.all-contributorsrc index ca64019365..44f3ee6556 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1384,6 +1384,15 @@ "contributions": [ "bug" ] + }, + { + "login": "3p3r", + "name": "Sepehr Laal", + "avatar_url": "https://avatars.githubusercontent.com/u/5657848?v=4", + "profile": "https://sepehrlaal.com/", + "contributions": [ + "bug" + ] } ], "repoType": "github", diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index fa974bfb38..0786e26839 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -62,14 +62,14 @@ jobs: shell: bash - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 with: platforms: arm64 - name: Set up docker buildx id: buildx if: steps.should-run.outputs.result == 'true' - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 # We only restore GH cache if we are not going to publish the result (i.e: PR validation) - name: Set up layer cache diff --git a/.github/workflows/yarn-upgrade.yml b/.github/workflows/yarn-upgrade.yml index b48d39225c..4bf279c26f 100644 --- a/.github/workflows/yarn-upgrade.yml +++ b/.github/workflows/yarn-upgrade.yml @@ -70,13 +70,13 @@ jobs: # We special-case typescript because it's not semantically versionned, and major.minor is the API contract run: |- # Upgrade devDependencies at repository root - ncu --upgrade --target=minor --filter=@types/node + ncu --upgrade --target=minor --filter=@types/node,ts-jest,@jest/types,jest-config,jest-circus ncu --upgrade --target=patch --filter=typescript - ncu --upgrade --target=latest --reject=@types/node,typescript + ncu --upgrade --target=latest --reject=@types/node,typescript,ts-jest,@jest/types,jest-config,jest-circus # Upgrade all production dependencies (and other always major-pinned dependencies) lerna exec --parallel ncu -- --upgrade --target=minor \ - --filter='${{ steps.production-dependencies.outputs.list }}' \ + --filter='ts-jest,${{ steps.production-dependencies.outputs.list }}' \ --reject='typescript,${{ steps.monorepo-packages.outputs.list }}' # Upgrade all minor-pinned dependencies @@ -85,7 +85,7 @@ jobs: # Upgrade all other dependencies (devDependencies) to the latest lerna exec --parallel ncu -- --upgrade --target=latest \ - --reject='@types/node,typescript,${{ steps.production-dependencies.outputs.list }},${{ steps.monorepo-packages.outputs.list }}' + --reject='@types/node,typescript,ts-jest,${{ steps.production-dependencies.outputs.list }},${{ steps.monorepo-packages.outputs.list }}' # This will ensure the current lockfile is up-to-date with the dependency specifications (necessary for "yarn update" to run) - name: Run "yarn install" diff --git a/.gitignore b/.gitignore index 85bbd6119b..81cf6295c9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ tsconfig.tsbuildinfo .vs dist/ .vscode +*.map *.tsbuildinfo *.tabl.json *.swp diff --git a/CHANGELOG.md b/CHANGELOG.md index 73b87ba0d6..16581e5bae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.59.0](https://github.com/aws/jsii/compare/v1.58.0...v1.59.0) (2022-05-16) + + +### Features + +* **jsii:** enable source maps for declaration files ([#3521](https://github.com/aws/jsii/issues/3521)) ([2751ca8](https://github.com/aws/jsii/commit/2751ca852ee751d3d7a49ee991004f3b5a6bde21)) + + +### Bug Fixes + +* **jsii:** deprecation warnings use this.constructor before calling super ([#3528](https://github.com/aws/jsii/issues/3528)) ([5d5f435](https://github.com/aws/jsii/commit/5d5f435c9ce32e6a1e76afe27b7ef810200bde58)), closes [#3527](https://github.com/aws/jsii/issues/3527) +* **python:** cannot import nested submodules ([#3540](https://github.com/aws/jsii/issues/3540)) ([8ef8ef2](https://github.com/aws/jsii/commit/8ef8ef2fe1e5559ef77a5b7ba0dbb67f52329927)), closes [#3408](https://github.com/aws/jsii/issues/3408) + ## [1.58.0](https://github.com/aws/jsii/compare/v1.57.0...v1.58.0) (2022-05-06) diff --git a/README.md b/README.md index 4d7272f5bf..5de4145a1d 100644 --- a/README.md +++ b/README.md @@ -192,46 +192,49 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Sam Goodwin

👀
Sebastian Korfmann

🐛 💻 🤔 +
Sepehr Laal

🐛
Shane Witbeck

🤔
Shiv Lakshminarayan

💻 🚧 👀
Somaya

💻 🤔 🚧 👀
The Gitter Badger

💻 🚧 -
Thomas Poignant

🐛 +
Thomas Poignant

🐛
Thomas Steinbach

🐛
Thorsten Hoeger

💻
Tim Wagner

🐛 🤔
Tobias Lidskog

💻
Ty Coghlan

🐛
Tyler van Hensbergen

🤔 -
Vlad Hrybok

🐛 +
Vlad Hrybok

🐛
Vladimir Shchur

🐛
Yan Zhulanow

💻
Yigong Liu

🐛 🤔
Zach Bienenfeld

🐛
ajnarang

🤔
aniljava

💻 -
arnogeurts-sqills

🐛 💻 +
arnogeurts-sqills

🐛 💻
deccy-mcc

🐛
dependabot-preview[bot]

🐛 🚧
dependabot[bot]

🚧
dheffx

🐛
gregswdl

🐛
guyroberts21

📖 -
mattBrzezinski

📖 +
mattBrzezinski

📖
mergify

🚧
mergify[bot]

🚧
nathannaveen

🚧
seiyashima42

🐛 💻 📖
sullis

💻
vaneek

🐛 + +
wendysophie

🐛 diff --git a/gh-pages/requirements-dev.txt b/gh-pages/requirements-dev.txt index bc96bb9cf9..e008e9a6fb 100644 --- a/gh-pages/requirements-dev.txt +++ b/gh-pages/requirements-dev.txt @@ -1,4 +1,4 @@ mkdocs~=1.3.0 mkdocs-awesome-pages-plugin~=2.7.0 -mkdocs-material~=8.2.13 +mkdocs-material~=8.2.14 mkdocs-git-revision-date-plugin~=0.3.2 diff --git a/lerna.json b/lerna.json index e0d6e372c4..51cd50d537 100644 --- a/lerna.json +++ b/lerna.json @@ -10,5 +10,5 @@ "rejectCycles": true } }, - "version": "1.58.0" + "version": "1.59.0" } diff --git a/package.json b/package.json index 73832efe3c..1a6a8fc938 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ }, "devDependencies": { "@jest/types": "^27.5.1", - "@typescript-eslint/eslint-plugin": "^5.20.0", - "@typescript-eslint/parser": "^5.20.0", + "@typescript-eslint/eslint-plugin": "^5.23.0", + "@typescript-eslint/parser": "^5.23.0", "all-contributors-cli": "^6.20.0", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "eslint-config-prettier": "^8.5.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^2.7.1", diff --git a/packages/@fixtures/jsii-calc-bundled/.gitignore b/packages/@fixtures/jsii-calc-bundled/.gitignore index 108da0b619..cf062d954a 100644 --- a/packages/@fixtures/jsii-calc-bundled/.gitignore +++ b/packages/@fixtures/jsii-calc-bundled/.gitignore @@ -11,3 +11,4 @@ node_modules/ coverage/ !index.js +*.d.ts.map diff --git a/packages/@jsii/Directory.Build.targets b/packages/@jsii/Directory.Build.targets index 44d2832570..531d7d9bcf 100644 --- a/packages/@jsii/Directory.Build.targets +++ b/packages/@jsii/Directory.Build.targets @@ -13,7 +13,7 @@ - + diff --git a/packages/@jsii/benchmarks/.gitignore b/packages/@jsii/benchmarks/.gitignore index 6c6558b43c..58720b500e 100644 --- a/packages/@jsii/benchmarks/.gitignore +++ b/packages/@jsii/benchmarks/.gitignore @@ -1,3 +1,4 @@ output.txt *.d.ts *.js +*.d.ts.map diff --git a/packages/@jsii/benchmarks/bin/benchmark.ts b/packages/@jsii/benchmarks/bin/benchmark.ts index 0d555540d7..dfc75114e7 100644 --- a/packages/@jsii/benchmarks/bin/benchmark.ts +++ b/packages/@jsii/benchmarks/bin/benchmark.ts @@ -37,7 +37,7 @@ interface ResultsJson { (async () => { /* eslint-disable-next-line @typescript-eslint/await-thenable */ - const argv = await yargs + const argv = yargs .command('$0', 'Runs jsii benchmark tests and displays results', (argv) => argv.option('output', { type: 'string', diff --git a/packages/@jsii/benchmarks/package.json b/packages/@jsii/benchmarks/package.json index 6f4ad3d3c3..e571f6639c 100644 --- a/packages/@jsii/benchmarks/package.json +++ b/packages/@jsii/benchmarks/package.json @@ -5,14 +5,14 @@ "description": "the jsii benchmark suite", "main": "index.js", "dependencies": { - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "jsii": "^0.0.0", "tar": "^6.1.11", "yargs": "^16.2.0" }, "devDependencies": { "@types/glob": "^7.2.0", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "glob": "^8.0.1", "jsii-calc": "^3.20.120", "prettier": "^2.6.2", diff --git a/packages/@jsii/check-node/.gitignore b/packages/@jsii/check-node/.gitignore index 0a8075016e..c720dc66aa 100644 --- a/packages/@jsii/check-node/.gitignore +++ b/packages/@jsii/check-node/.gitignore @@ -5,3 +5,4 @@ dist node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/packages/@jsii/check-node/package.json b/packages/@jsii/check-node/package.json index b123296cb3..1d334ea64f 100644 --- a/packages/@jsii/check-node/package.json +++ b/packages/@jsii/check-node/package.json @@ -41,8 +41,8 @@ }, "devDependencies": { "@types/chalk": "^2.2.0", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "jest": "^27.5.1" } } diff --git a/packages/@jsii/dotnet-runtime-test/.gitignore b/packages/@jsii/dotnet-runtime-test/.gitignore index 18ef3033c8..07f5a58800 100644 --- a/packages/@jsii/dotnet-runtime-test/.gitignore +++ b/packages/@jsii/dotnet-runtime-test/.gitignore @@ -22,3 +22,4 @@ node_modules/ .nyc_output/ coverage/ .nuget/ +*.d.ts.map diff --git a/packages/@jsii/dotnet-runtime-test/package.json b/packages/@jsii/dotnet-runtime-test/package.json index 6896ff44f4..226b9821ba 100644 --- a/packages/@jsii/dotnet-runtime-test/package.json +++ b/packages/@jsii/dotnet-runtime-test/package.json @@ -31,7 +31,7 @@ }, "devDependencies": { "@jsii/dotnet-runtime": "^0.0.0", - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "jsii-calc": "^3.20.120", "jsii-pacmak": "^0.0.0", "typescript": "~3.9.10" diff --git a/packages/@jsii/dotnet-runtime/.gitignore b/packages/@jsii/dotnet-runtime/.gitignore index c9cb60dbb8..ceff263cb4 100644 --- a/packages/@jsii/dotnet-runtime/.gitignore +++ b/packages/@jsii/dotnet-runtime/.gitignore @@ -25,3 +25,4 @@ obj/ # consumed by generate.sh !*.t.js +*.d.ts.map diff --git a/packages/@jsii/dotnet-runtime/package.json b/packages/@jsii/dotnet-runtime/package.json index acf8792618..377672fc8c 100644 --- a/packages/@jsii/dotnet-runtime/package.json +++ b/packages/@jsii/dotnet-runtime/package.json @@ -39,7 +39,7 @@ }, "devDependencies": { "@jsii/runtime": "^0.0.0", - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "@types/semver": "^7.3.9", "jsii-build-tools": "^0.0.0", "semver": "^7.3.7", diff --git a/packages/@jsii/go-runtime-test/.gitignore b/packages/@jsii/go-runtime-test/.gitignore index cfabfbd25d..811e292730 100644 --- a/packages/@jsii/go-runtime-test/.gitignore +++ b/packages/@jsii/go-runtime-test/.gitignore @@ -5,3 +5,4 @@ # Ignore our test files project/compliance-report.json +*.d.ts.map diff --git a/packages/@jsii/go-runtime/.gitignore b/packages/@jsii/go-runtime/.gitignore index bf1001874b..4b852cf163 100644 --- a/packages/@jsii/go-runtime/.gitignore +++ b/packages/@jsii/go-runtime/.gitignore @@ -7,3 +7,4 @@ *.d.ts !jsii-runtime-go/internal/kernel/process/jsii-mock-runtime.js +*.d.ts.map diff --git a/packages/@jsii/go-runtime/package.json b/packages/@jsii/go-runtime/package.json index a488578c1a..2b2a31bbec 100644 --- a/packages/@jsii/go-runtime/package.json +++ b/packages/@jsii/go-runtime/package.json @@ -24,9 +24,9 @@ }, "devDependencies": { "@types/fs-extra": "^9.0.13", - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "codemaker": "^0.0.0", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "fs-extra": "^9.1.0", "jsii-build-tools": "^0.0.0", "jsii-calc": "^3.20.120", diff --git a/packages/@jsii/integ-test/.gitignore b/packages/@jsii/integ-test/.gitignore index 4ec96f4e9d..101d91ca5a 100644 --- a/packages/@jsii/integ-test/.gitignore +++ b/packages/@jsii/integ-test/.gitignore @@ -1,2 +1,4 @@ .env *.js +*.d.ts +*.d.ts.map diff --git a/packages/@jsii/integ-test/package.json b/packages/@jsii/integ-test/package.json index 98ca1cff0c..c934d666b2 100644 --- a/packages/@jsii/integ-test/package.json +++ b/packages/@jsii/integ-test/package.json @@ -5,7 +5,7 @@ "private": true, "scripts": { "build": "tsc --build && npm run lint", - "lint": "eslint . --ext .ts --ignore-path=.gitignore", + "lint": "eslint . --ext .ts --ignore-pattern '*.d.ts' --ignore-path=.gitignore", "lint:fix": "yarn lint --fix", "test:integ": "jest", "package": "package-private" @@ -29,10 +29,10 @@ "devDependencies": { "@types/dotenv": "^8.2.0", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "@types/tar": "^6.1.1", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "prettier": "^2.6.2", "typescript": "~3.9.10" } diff --git a/packages/@jsii/integ-test/tsconfig.json b/packages/@jsii/integ-test/tsconfig.json index 78bdd385b9..896dbdabe8 100644 --- a/packages/@jsii/integ-test/tsconfig.json +++ b/packages/@jsii/integ-test/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "composite": false, - "declaration": false + "declaration": true }, "extends": "../../../tsconfig-base", "include": ["**/*.ts"], diff --git a/packages/@jsii/java-runtime/.gitignore b/packages/@jsii/java-runtime/.gitignore index ca6b4fe9f8..918272b9b6 100644 --- a/packages/@jsii/java-runtime/.gitignore +++ b/packages/@jsii/java-runtime/.gitignore @@ -4,3 +4,4 @@ *.d.ts !*.t.js maven-repo +*.d.ts.map diff --git a/packages/@jsii/java-runtime/package.json b/packages/@jsii/java-runtime/package.json index 4dfb2a8b5b..3a3c46a1f0 100644 --- a/packages/@jsii/java-runtime/package.json +++ b/packages/@jsii/java-runtime/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@jsii/runtime": "^0.0.0", - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "jsii-build-tools": "^0.0.0", "typescript": "~3.9.10" } diff --git a/packages/@jsii/kernel/.gitignore b/packages/@jsii/kernel/.gitignore index 7cf6d2ef9c..39b2a4a784 100644 --- a/packages/@jsii/kernel/.gitignore +++ b/packages/@jsii/kernel/.gitignore @@ -1,5 +1,3 @@ -*.js -*.d.ts -node_modules/ -.nyc_output/ -coverage/ +/coverage/ +/lib/ +/node_modules/ diff --git a/packages/@jsii/kernel/.npmignore b/packages/@jsii/kernel/.npmignore index 52e08aaf63..7653ff1370 100644 --- a/packages/@jsii/kernel/.npmignore +++ b/packages/@jsii/kernel/.npmignore @@ -1,9 +1,13 @@ -# Don't include original .ts files when doing `npm pack` -*.ts -!*.d.ts +# Don't include the original source files +/src/ -# Don't include various configuration & state information -coverage -.eslintrc.* +# Don't include test files +/coverage/ +/lib/**/*.test.* + +# No build tools & configuration +/.eslintrc.yaml +/jest.config.ts tsconfig.json +*.map *.tsbuildinfo diff --git a/packages/@jsii/kernel/package.json b/packages/@jsii/kernel/package.json index 29ac834574..f8e675b729 100644 --- a/packages/@jsii/kernel/package.json +++ b/packages/@jsii/kernel/package.json @@ -39,10 +39,10 @@ "@scope/jsii-calc-base": "^0.0.0", "@scope/jsii-calc-lib": "^0.0.0", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "@types/tar": "^6.1.1", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "jest": "^27.5.1", "jest-expect-message": "^1.0.2", "jsii-build-tools": "^0.0.0", diff --git a/packages/@jsii/kernel/lib/api.ts b/packages/@jsii/kernel/src/api.ts similarity index 100% rename from packages/@jsii/kernel/lib/api.ts rename to packages/@jsii/kernel/src/api.ts diff --git a/packages/@jsii/kernel/lib/index.ts b/packages/@jsii/kernel/src/index.ts similarity index 100% rename from packages/@jsii/kernel/lib/index.ts rename to packages/@jsii/kernel/src/index.ts diff --git a/packages/@jsii/kernel/test/kernel.test.ts b/packages/@jsii/kernel/src/kernel.test.ts similarity index 99% rename from packages/@jsii/kernel/test/kernel.test.ts rename to packages/@jsii/kernel/src/kernel.test.ts index 68eb991bac..f4a7f72a52 100644 --- a/packages/@jsii/kernel/test/kernel.test.ts +++ b/packages/@jsii/kernel/src/kernel.test.ts @@ -5,7 +5,7 @@ import { join } from 'path'; import * as path from 'path'; import * as vm from 'vm'; -import { api, Kernel } from '../lib'; +import * as api from './api'; import { Callback, ObjRef, @@ -14,7 +14,8 @@ import { TOKEN_MAP, WireStruct, TOKEN_STRUCT, -} from '../lib/api'; +} from './api'; +import { Kernel } from './kernel'; import { closeRecording, recordInteraction } from './recording'; /* eslint-disable require-atomic-updates */ diff --git a/packages/@jsii/kernel/lib/kernel.ts b/packages/@jsii/kernel/src/kernel.ts similarity index 100% rename from packages/@jsii/kernel/lib/kernel.ts rename to packages/@jsii/kernel/src/kernel.ts diff --git a/packages/@jsii/kernel/test/objects.test.ts b/packages/@jsii/kernel/src/objects.test.ts similarity index 93% rename from packages/@jsii/kernel/test/objects.test.ts rename to packages/@jsii/kernel/src/objects.test.ts index 2d11966e1c..53e0a610af 100644 --- a/packages/@jsii/kernel/test/objects.test.ts +++ b/packages/@jsii/kernel/src/objects.test.ts @@ -1,4 +1,4 @@ -import { ObjectTable } from '../lib/objects'; +import { ObjectTable } from './objects'; const mockResolve = jest.fn(); diff --git a/packages/@jsii/kernel/lib/objects.ts b/packages/@jsii/kernel/src/objects.ts similarity index 100% rename from packages/@jsii/kernel/lib/objects.ts rename to packages/@jsii/kernel/src/objects.ts diff --git a/packages/@jsii/kernel/lib/on-exit.ts b/packages/@jsii/kernel/src/on-exit.ts similarity index 100% rename from packages/@jsii/kernel/lib/on-exit.ts rename to packages/@jsii/kernel/src/on-exit.ts diff --git a/packages/@jsii/kernel/test/recording.ts b/packages/@jsii/kernel/src/recording.ts similarity index 98% rename from packages/@jsii/kernel/test/recording.ts rename to packages/@jsii/kernel/src/recording.ts index 0dd1f995c0..ba07c70541 100644 --- a/packages/@jsii/kernel/test/recording.ts +++ b/packages/@jsii/kernel/src/recording.ts @@ -1,6 +1,6 @@ import * as fs from 'fs-extra'; -import { Kernel } from '../lib'; +import { Kernel } from './kernel'; export async function closeRecording(kernel: Kernel): Promise { const logfile: fs.WriteStream = (kernel as any).logfile; diff --git a/packages/@jsii/kernel/test/serialization.test.ts b/packages/@jsii/kernel/src/serialization.test.ts similarity index 97% rename from packages/@jsii/kernel/test/serialization.test.ts rename to packages/@jsii/kernel/src/serialization.test.ts index 92b82388cb..b61ab42e9c 100644 --- a/packages/@jsii/kernel/test/serialization.test.ts +++ b/packages/@jsii/kernel/src/serialization.test.ts @@ -1,12 +1,12 @@ import { CANONICAL_ANY, OptionalValue, PrimitiveType } from '@jsii/spec'; -import { TOKEN_REF } from '../lib/api'; -import { ObjectTable } from '../lib/objects'; +import { TOKEN_REF } from './api'; +import { ObjectTable } from './objects'; import { SerializationClass, SerializerHost, SERIALIZERS, -} from '../lib/serialization'; +} from './serialization'; const TYPE_ANY: OptionalValue = { type: CANONICAL_ANY }; const TYPE_BOOLEAN: OptionalValue = { diff --git a/packages/@jsii/kernel/lib/serialization.ts b/packages/@jsii/kernel/src/serialization.ts similarity index 100% rename from packages/@jsii/kernel/lib/serialization.ts rename to packages/@jsii/kernel/src/serialization.ts diff --git a/packages/@jsii/kernel/tsconfig.json b/packages/@jsii/kernel/tsconfig.json index 27cdb8c0e7..636c8b11b5 100644 --- a/packages/@jsii/kernel/tsconfig.json +++ b/packages/@jsii/kernel/tsconfig.json @@ -1,8 +1,15 @@ { "extends": "../../../tsconfig-base", - "include": ["**/*.ts"], - "exclude": ["jest.config.ts"], + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + }, + "include": [ + "src/**/*.ts" + ], "references": [ - { "path": "../spec" }, + { + "path": "../spec" + }, ], } diff --git a/packages/@jsii/python-runtime/build-tools/deps.ts b/packages/@jsii/python-runtime/build-tools/deps.ts index 637f71f9ed..ff84ded6ea 100644 --- a/packages/@jsii/python-runtime/build-tools/deps.ts +++ b/packages/@jsii/python-runtime/build-tools/deps.ts @@ -20,7 +20,7 @@ const env = { runCommand( python, - ['-m', 'pip', 'install', '-r', resolve(__dirname, '..', 'requirements.txt')], + ['-m', 'pip', 'install', '--upgrade', '-r', resolve(__dirname, '..', 'requirements.txt')], { env }, ); diff --git a/packages/@jsii/python-runtime/pyproject.toml b/packages/@jsii/python-runtime/pyproject.toml index bb3a114b3c..2660b27c0c 100644 --- a/packages/@jsii/python-runtime/pyproject.toml +++ b/packages/@jsii/python-runtime/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["pip~=22.0", "setuptools~=62.1", "wheel~=0.37"] +requires = ["setuptools~=62.2", "wheel~=0.37"] build-backend = 'setuptools.build_meta' [tool.black] diff --git a/packages/@jsii/python-runtime/requirements.txt b/packages/@jsii/python-runtime/requirements.txt index 35bb021571..099cf7aed2 100644 --- a/packages/@jsii/python-runtime/requirements.txt +++ b/packages/@jsii/python-runtime/requirements.txt @@ -1,9 +1,9 @@ black~=22.3 mypy==0.812 -pip~=22.0 +pip~=22.1 pytest~=7.1 pytest-mypy~=0.9 -setuptools~=62.1 +setuptools~=62.2 wheel~=0.37 -e . diff --git a/packages/@jsii/runtime/.gitignore b/packages/@jsii/runtime/.gitignore index cce840cc0f..f612ebeac8 100644 --- a/packages/@jsii/runtime/.gitignore +++ b/packages/@jsii/runtime/.gitignore @@ -9,3 +9,4 @@ node_modules/ coverage/ test/_tarballs/ +*.d.ts.map diff --git a/packages/@jsii/runtime/package.json b/packages/@jsii/runtime/package.json index 1709646078..1afa5a6a28 100644 --- a/packages/@jsii/runtime/package.json +++ b/packages/@jsii/runtime/package.json @@ -41,9 +41,9 @@ "devDependencies": { "@scope/jsii-calc-base": "^0.0.0", "@scope/jsii-calc-lib": "^0.0.0", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "jest": "^27.5.1", "jsii-build-tools": "^0.0.0", "jsii-calc": "^3.20.120", @@ -51,7 +51,7 @@ "source-map-loader": "^3.0.1", "ts-jest": "^27.1.4", "typescript": "~3.9.10", - "webpack": "^5.72.0", + "webpack": "^5.72.1", "webpack-cli": "^4.9.2" } } diff --git a/packages/@jsii/runtime/test/playback.test.ts b/packages/@jsii/runtime/test/playback.test.ts index b4bcdab792..4230b90a51 100644 --- a/packages/@jsii/runtime/test/playback.test.ts +++ b/packages/@jsii/runtime/test/playback.test.ts @@ -44,11 +44,11 @@ function createRecords(): string { require.resolve('jest/bin/jest'), '--no-coverage', '--runInBand', - 'test/kernel.test.ts', + 'src/kernel.test.ts', ], { cwd: path.resolve( - require.resolve('@jsii/kernel/test/kernel.test.js'), + require.resolve('@jsii/kernel/lib/kernel.test.js'), '..', '..', ), diff --git a/packages/@jsii/spec/.gitignore b/packages/@jsii/spec/.gitignore index ab75aa27ca..ab6e4cf328 100644 --- a/packages/@jsii/spec/.gitignore +++ b/packages/@jsii/spec/.gitignore @@ -5,3 +5,4 @@ schema node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/packages/@jsii/spec/lib/assembly.js.map b/packages/@jsii/spec/lib/assembly.js.map new file mode 100644 index 0000000000..3dfd95c4c0 --- /dev/null +++ b/packages/@jsii/spec/lib/assembly.js.map @@ -0,0 +1 @@ +{"version":3,"file":"assembly.js","sourceRoot":"","sources":["../src/assembly.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,OAAO,CAAC;AAmNtC;;GAEG;AACH,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,uCAAsB,CAAA;AACxB,CAAC,EAFW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAExB;AAsKD;;;;GAIG;AACH,IAAY,SA4BX;AA5BD,WAAY,SAAS;IACnB;;;;;OAKG;IACH,sCAAyB,CAAA;IAEzB;;;;;OAKG;IACH,0CAA6B,CAAA;IAE7B;;;OAGG;IACH,8BAAiB,CAAA;IAEjB;;;OAGG;IACH,kCAAqB,CAAA;AACvB,CAAC,EA5BW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QA4BpB;AAkDD;;GAEG;AACH,IAAY,cASX;AATD,WAAY,cAAc;IACxB;;OAEG;IACH,iCAAe,CAAA;IACf;;OAEG;IACH,6BAAW,CAAA;AACb,CAAC,EATW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QASzB;AAED;;GAEG;AACH,IAAY,aA+BX;AA/BD,WAAY,aAAa;IACvB;;OAEG;IACH,8BAAa,CAAA;IAEb;;OAEG;IACH,kCAAiB,CAAA;IAEjB;;OAEG;IACH,kCAAiB,CAAA;IAEjB;;OAEG;IACH,oCAAmB,CAAA;IAEnB;;OAEG;IACH,8BAAa,CAAA;IAEb;;;OAGG;IACH,4BAAW,CAAA;AACb,CAAC,EA/BW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA+BxB;AA4BD;;GAEG;AACU,QAAA,aAAa,GAAqC;IAC7D,SAAS,EAAE,aAAa,CAAC,GAAG;CAC7B,CAAC;AAaF,SAAgB,oBAAoB,CAClC,GAA8B;;IAE9B,OAAO,CAAC,QAAE,GAA0B,0CAAE,GAAG,CAAA,CAAC;AAC5C,CAAC;AAJD,oDAIC;AAYD,SAAgB,wBAAwB,CACtC,GAA8B;;IAE9B,OAAO,CAAC,QAAE,GAA8B,0CAAE,SAAS,CAAA,CAAC;AACtD,CAAC;AAJD,4DAIC;AAkBD,SAAgB,yBAAyB,CACvC,GAA8B;;IAE9B,OAAO,CAAC,QAAE,GAA+B,0CAAE,UAAU,CAAA,CAAC;AACxD,CAAC;AAJD,8DAIC;AAmBD,SAAgB,oBAAoB,CAClC,GAA8B;;IAE9B,OAAO,CAAC,QAAE,GAA0B,0CAAE,KAAK,CAAA,CAAC;AAC9C,CAAC;AAJD,oDAIC;AAmKD;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,QAAkB;IACzC,OAAO,CAAC,CAAE,QAAmB,CAAC,IAAI,CAAC;AACrC,CAAC;AAFD,4BAEC;AA2DD;;GAEG;AACH,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,mCAAuB,CAAA;AACzB,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAoDD,SAAgB,WAAW,CAAC,IAAsB;IAChD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,CAAC,KAAK,CAAC;AACvC,CAAC;AAFD,kCAEC;AAuCD,SAAgB,eAAe,CAAC,IAAsB;IACpD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,CAAC,SAAS,CAAC;AAC3C,CAAC;AAFD,0CAEC;AAwBD,SAAgB,UAAU,CAAC,IAAsB;IAC/C,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,CAAC,IAAI,CAAC;AACtC,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,IAAsB;IAEtB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,wDAIC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAoB;IACxD,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,MAAM,CAAC;KACf;IAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;IAED,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,qBAAqB,CACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,GAAG,CAAC;KACN;IAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACjD,CAAC;AAzBD,sDAyBC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,MAAoB;;IAC/C,OAAO,OAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,SAAS,MAAK,SAAS,CAAC,UAAU,CAAC;AAC1D,CAAC;AAFD,oCAEC","sourcesContent":["export const SPEC_FILE_NAME = '.jsii';\n\n/**\n * A JSII assembly specification.\n */\nexport interface Assembly\n extends AssemblyConfiguration,\n Documentable,\n ReadMeContainer {\n /**\n * The version of the spec schema\n */\n schema: SchemaVersion.LATEST;\n\n /**\n * The name of the assembly\n *\n * @minLength 1\n */\n name: string;\n\n /**\n * Description of the assembly, maps to \"description\" from package.json\n * This is required since some package managers (like Maven) require it.\n */\n description: string;\n\n /**\n * The url to the project homepage. Maps to \"homepage\" from package.json.\n */\n homepage: string;\n\n /**\n * The module repository, maps to \"repository\" from package.json\n * This is required since some package managers (like Maven) require it.\n */\n repository: {\n /**\n * The type of the repository (``git``, ``svn``, ...)\n */\n type: string;\n\n /**\n * The URL of the repository.\n */\n url: string;\n\n /**\n * If the package is not in the root directory (for example, when part\n * of a monorepo), you should specify the directory in which it lives.\n *\n * @default the root of the repository\n */\n directory?: string;\n };\n\n /**\n * The main author of this package.\n */\n author: Person;\n\n /**\n * Additional contributors to this package.\n *\n * @default none\n */\n contributors?: Person[];\n\n /**\n * A fingerprint that can be used to determine if the specification has\n * changed.\n *\n * @minLength 1\n */\n fingerprint: string;\n\n /**\n * The version of the assembly\n * @minLength 1\n */\n version: string;\n\n /**\n * The version of the jsii compiler that was used to produce this Assembly.\n * @minLength 1\n */\n jsiiVersion: string;\n\n /**\n * The SPDX name of the license this assembly is distributed on.\n */\n license: string;\n\n /**\n * Arbitrary key-value pairs of metadata, which the maintainer chose to\n * document with the assembly. These entries do not carry normative\n * semantics and their interpretation is up to the assembly maintainer.\n *\n * @default none\n */\n metadata?: { [key: string]: any };\n\n /**\n * Keywords that help discover or identify this packages with respects to it's\n * intended usage, audience, etc... Where possible, this will be rendered in\n * the corresponding metadata section of idiomatic package manifests, for\n * example NuGet package tags.\n */\n keywords?: string[];\n\n /**\n * Direct dependencies on other assemblies (with semver), the key is the JSII\n * assembly name, and the value is a SemVer expression.\n *\n * @default none\n */\n dependencies?: { [assembly: string]: string };\n\n /**\n * Target configuration for all the assemblies that are direct or transitive\n * dependencies of this assembly. This is needed to generate correct native\n * type names for any transitively inherited member, in certain languages.\n *\n * @default none\n */\n dependencyClosure?: { [assembly: string]: DependencyConfiguration };\n\n /**\n * List if bundled dependencies (these are not expected to be jsii\n * assemblies).\n *\n * @default none\n */\n bundled?: { [module: string]: string };\n\n /**\n * All types in the assembly, keyed by their fully-qualified-name\n *\n * @default none\n */\n types?: { [fqn: string]: Type };\n\n /**\n * List of bin-scripts\n *\n * @default none\n */\n bin?: { readonly [script: string]: string };\n}\n\n/**\n * Shareable configuration of a jsii Assembly.\n */\nexport interface AssemblyConfiguration extends Targetable {\n /**\n * Submodules declared in this assembly.\n *\n * @default none\n */\n submodules?: { [fqn: string]: Submodule };\n}\n\nexport interface DependencyConfiguration extends Targetable {\n submodules?: { [fqn: string]: Targetable };\n}\n\n/**\n * A targetable module-like thing\n *\n * Has targets and a readme. Used for Assemblies and Submodules.\n */\nexport interface Targetable {\n /**\n * A map of target name to configuration, which is used when generating\n * packages for various languages.\n *\n * @default none\n */\n targets?: AssemblyTargets;\n}\n\n/**\n * Elements that can contain a `readme` property.\n */\nexport interface ReadMeContainer {\n /**\n * The readme document for this module (if any).\n *\n * @default none\n */\n readme?: ReadMe;\n}\n\n/**\n * README information\n */\nexport interface ReadMe {\n markdown: string;\n}\n\n/**\n * A submodule\n *\n * The difference between a top-level module (the assembly) and a submodule is\n * that the submodule is annotated with its location in the repository.\n */\nexport type Submodule = ReadMeContainer &\n SourceLocatable &\n Targetable &\n TypeScriptLocatable;\n\n/**\n * Versions of the JSII Assembly Specification.\n */\nexport enum SchemaVersion {\n LATEST = 'jsii/0.10.0',\n}\n\n/**\n * Fully Qualified Name\n */\nexport type FQN = string;\n\n/**\n * Metadata about people or organizations associated with the project that\n * resulted in the Assembly. Some of this metadata is required in order to\n * publish to certain package repositories (for example, Maven Central), but is\n * not normalized, and the meaning of fields (role, for example), is up to each\n * project maintainer.\n */\nexport interface Person {\n /**\n * The name of the person\n */\n name: string;\n\n /**\n * A list of roles this person has in the project, for example `maintainer`,\n * `contributor`, `owner`, ...\n */\n roles: string[];\n\n /**\n * The email of the person\n *\n * @default none\n */\n email?: string;\n\n /**\n * The URL for the person\n *\n * @default none\n */\n url?: string;\n\n /**\n * If true, this person is, in fact, an organization\n *\n * @default false\n */\n organization?: boolean;\n}\n\n/**\n * Configurable targets for an asembly.\n */\nexport interface AssemblyTargets {\n /**\n * Information about a particular language's targets\n */\n [language: string]: { [key: string]: any } | undefined;\n}\n\n/**\n * Where in the module source the definition for this API item was found\n */\nexport interface SourceLocation {\n /**\n * Relative filename\n */\n filename: string;\n\n /**\n * 1-based line number in the indicated file\n */\n line: number;\n}\n\n/**\n * Key value pairs of documentation nodes.\n * Based on TSDoc.\n */\nexport interface Docs {\n /**\n * Summary documentation for an API item.\n *\n * The first part of the documentation before hitting a `@remarks` tags, or\n * the first line of the doc comment block if there is no `@remarks` tag.\n *\n * @default none\n */\n summary?: string;\n\n /**\n * Detailed information about an API item.\n *\n * Either the explicitly tagged `@remarks` section, otherwise everything\n * past the first paragraph if there is no `@remarks` tag.\n *\n * @default none\n */\n remarks?: string;\n\n /**\n * If present, this block indicates that an API item is no longer supported\n * and may be removed in a future release. The `@deprecated` tag must be\n * followed by a sentence describing the recommended alternative.\n * Deprecation recursively applies to members of a container. For example,\n * if a class is deprecated, then so are all of its members.\n *\n * @default none\n */\n deprecated?: string;\n\n /**\n * The `@returns` block for this doc comment, or undefined if there is not\n * one.\n *\n * @default none\n */\n returns?: string;\n\n /**\n * Whether the API item is beta/experimental quality\n */\n stability?: Stability;\n\n /**\n * Example showing the usage of this API item\n *\n * Starts off in running text mode, may switch to code using fenced code\n * blocks.\n *\n * @default none\n */\n example?: string;\n\n /**\n * A `@see` link with more information\n *\n * @default none\n */\n see?: string;\n\n /**\n * Whether this class or interface was intended to be subclassed/implemented\n * by library users.\n *\n * Classes intended for subclassing, and interfaces intended to be\n * implemented by consumers, are held to stricter standards of API\n * compatibility.\n *\n * @default false\n */\n subclassable?: boolean;\n\n /**\n * Description of the default\n *\n * @default none\n */\n default?: string;\n\n /**\n * Custom tags that are not any of the default ones\n *\n * @default none\n */\n custom?: { [tag: string]: string };\n}\n\n/**\n * API Stability levels. These are modeled after the `node` stability index.\n *\n * @see https://nodejs.org/api/documentation.html#documentation_stability_index.\n */\nexport enum Stability {\n /**\n * The API may emit warnings. Backward compatibility is not guaranteed.\n *\n * More information about the deprecation can usually be found in the\n * `deprecated` field.\n */\n Deprecated = 'deprecated',\n\n /**\n * This API is still under active development and subject to non-backward\n * compatible changes or removal in any future version. Use of the API is\n * not recommended in production environments. Experimental APIs are not\n * subject to the Semantic Versioning model.\n */\n Experimental = 'experimental',\n\n /**\n * This API is subject to the Semantic Versioning model and may not change\n * in breaking ways in a subsequent minor or patch version.\n */\n Stable = 'stable',\n\n /**\n * This API is an representation of an API managed elsewhere and follows\n * the other API's versioning model.\n */\n External = 'external',\n}\n\n/**\n * Indicates that an entity is documentable.\n */\nexport interface Documentable {\n /**\n * Documentation for this entity.\n *\n * @default none\n */\n docs?: Docs;\n}\n\n/**\n * Indicates that an entity has a source location\n */\nexport interface SourceLocatable {\n /**\n * Where in the module this definition was found\n *\n * Why is this not `locationInAssembly`? Because the assembly is the JSII\n * file combining compiled code and its manifest, whereas this is referring\n * to the location of the source in the module the assembly was built from.\n *\n * @default none\n */\n locationInModule?: SourceLocation;\n}\n\n/**\n * Indicates that a jsii entity's origin can be traced to TypeScript code\n *\n * This is interface is not the same as `SourceLocatable`. SourceLocatable\n * identifies lines in source files in a source repository (in a `.ts` file,\n * with respect to a git root).\n *\n * On the other hand, `TypeScriptLocatable` identifies a symbol name inside a\n * potentially distributed TypeScript file (in either a `.d.ts` or `.ts`\n * file, with respect to the package root).\n */\nexport interface TypeScriptLocatable {\n /**\n * Unique string representation of the corresponding Typescript symbol\n *\n * Used to map from TypeScript code back into the assembly.\n */\n symbolId?: string;\n}\n\n/**\n * Kinds of collections.\n */\nexport enum CollectionKind {\n /**\n * An array, or a list of some element type.\n */\n Array = 'array',\n /**\n * A map of a string to some element type.\n */\n Map = 'map',\n}\n\n/**\n * Kinds of primitive types.\n */\nexport enum PrimitiveType {\n /**\n * A JSON date (represented as it's ISO-8601 string form).\n */\n Date = 'date',\n\n /**\n * A plain string.\n */\n String = 'string',\n\n /**\n * A number (integer or float).\n */\n Number = 'number',\n\n /**\n * A boolean value.\n */\n Boolean = 'boolean',\n\n /**\n * A JSON object\n */\n Json = 'json',\n\n /**\n * Value with \"any\" or \"unknown\" type (aka Object). Values typed `any` may\n * be `null` or `undefined`.\n */\n Any = 'any',\n}\n\n/**\n * A value that can possibly be optional.\n */\nexport interface OptionalValue {\n /**\n * Determines whether the value is, indeed, optional.\n *\n * @default false\n */\n optional?: boolean;\n\n /**\n * The declared type of the value, when it's present.\n */\n type: TypeReference;\n}\n\n/**\n * A reference to a type (primitive, collection or fqn).\n */\nexport type TypeReference =\n | NamedTypeReference\n | PrimitiveTypeReference\n | CollectionTypeReference\n | UnionTypeReference;\n\n/**\n * The standard representation of the `any` type (includes optionality marker).\n */\nexport const CANONICAL_ANY: Readonly = {\n primitive: PrimitiveType.Any,\n};\n\n/**\n * Reference to a named type, defined by this assembly or one of its\n * dependencies.\n */\nexport interface NamedTypeReference {\n /**\n * The fully-qualified-name of the type (can be located in the\n * ``spec.types[fqn]``` of the assembly that defines the type).\n */\n fqn: FQN;\n}\nexport function isNamedTypeReference(\n ref: TypeReference | undefined,\n): ref is NamedTypeReference {\n return !!(ref as NamedTypeReference)?.fqn;\n}\n\n/**\n * Reference to a primitive type.\n */\nexport interface PrimitiveTypeReference {\n /**\n * If this is a reference to a primitive type, this will include the\n * primitive type kind.\n */\n primitive: PrimitiveType;\n}\nexport function isPrimitiveTypeReference(\n ref: TypeReference | undefined,\n): ref is PrimitiveTypeReference {\n return !!(ref as PrimitiveTypeReference)?.primitive;\n}\n\n/**\n * Reference to a collection type.\n */\nexport interface CollectionTypeReference {\n collection: {\n /**\n * The kind of collection.\n */\n kind: CollectionKind;\n\n /**\n * The type of an element (map keys are always strings).\n */\n elementtype: TypeReference;\n };\n}\nexport function isCollectionTypeReference(\n ref: TypeReference | undefined,\n): ref is CollectionTypeReference {\n return !!(ref as CollectionTypeReference)?.collection;\n}\n\n/**\n * Reference to a union type.\n */\nexport interface UnionTypeReference {\n /**\n * Indicates that this is a union type, which means it can be one of a set\n * of types.\n */\n union: {\n /**\n * All the possible types (including the primary type).\n *\n * @minItems 2\n */\n types: TypeReference[];\n };\n}\nexport function isUnionTypeReference(\n ref: TypeReference | undefined,\n): ref is UnionTypeReference {\n return !!(ref as UnionTypeReference)?.union;\n}\n\n/**\n * Methods and properties can be overridden from parent classes or implemented\n * from interfaces.\n */\nexport interface Overridable {\n /**\n * The FQN of the parent type (class or interface) that this entity\n * overrides or implements. If undefined, then this entity is the first in\n * it's hierarchy to declare this entity.\n *\n * @default this member is not overriding anything\n */\n overrides?: FQN;\n}\n\n/**\n * A class property.\n */\nexport interface Property\n extends Documentable,\n OptionalValue,\n Overridable,\n SourceLocatable {\n /**\n * The name of the property.\n *\n * @minLength 1\n */\n name: string;\n\n /**\n * Indicates if this property only has a getter (immutable).\n *\n * @default false\n */\n immutable?: boolean;\n\n /**\n * Indicates if this property is protected (otherwise it is public)\n *\n * @default false\n */\n protected?: boolean;\n\n /**\n * Indicates if this property is abstract\n *\n * @default false\n */\n abstract?: boolean;\n\n /**\n * Indicates if this is a static property.\n *\n * @default false\n */\n static?: boolean;\n\n /**\n * A hint that indicates that this static, immutable property is initialized\n * during startup. This allows emitting \"const\" idioms in different target\n * languages. Implies `static` and `immutable`.\n *\n * @default false\n */\n const?: boolean;\n}\n\n/**\n * Represents a method parameter.\n */\nexport interface Parameter extends Documentable, OptionalValue {\n /**\n * The name of the parameter.\n *\n * @minLength 1\n */\n name: string;\n\n /**\n * Whether this is the last parameter of a variadic method. In such cases,\n * the `#type` attribute is the type of each individual item of the variadic\n * arguments list (as opposed to some array type, as for example TypeScript\n * would model it).\n *\n * @default false\n */\n variadic?: boolean;\n}\n\n/**\n * An Initializer or a Method.\n */\nexport interface Callable extends Documentable, Overridable, SourceLocatable {\n /**\n * The parameters of the Initializer or Method.\n *\n * @default none\n */\n parameters?: Parameter[];\n\n /**\n * Indicates if this Initializer or Method is protected (otherwise it is\n * public, since private members are not modeled).\n *\n * @default false\n */\n protected?: boolean;\n\n /**\n * Indicates whether this Initializer or Method is variadic or not. When\n * ``true``, the last element of ``#parameters`` will also be flagged\n * ``#variadic``.\n *\n * @default false\n */\n variadic?: boolean;\n}\n\n/**\n * An initializer.\n */\nexport type Initializer = Callable;\n\n/**\n * A method with a name (i.e: not an initializer).\n */\nexport interface Method extends Callable {\n /**\n * The name of the method. Undefined if this method is a initializer.\n */\n name: string;\n\n /**\n * The return type of the method (`undefined` if `void`)\n *\n * @default void\n */\n returns?: OptionalValue;\n\n /**\n * Is this method an abstract method (this means the class will also be an abstract class)\n *\n * @default false\n */\n abstract?: boolean;\n\n /**\n * Indicates if this is an asynchronous method (it will return a promise).\n *\n * @default false\n */\n async?: boolean;\n\n /**\n * Indicates if this is a static method.\n *\n * @default false\n */\n static?: boolean;\n}\n/**\n * Determines whether a Callable is a Method or not.\n *\n * @param callable the callable to be checked.\n */\nexport function isMethod(callable: Callable): callable is Method {\n return !!(callable as Method).name;\n}\n\n/**\n * Represents a type definition (not a type reference).\n */\nexport type Type = TypeBase & (ClassType | EnumType | InterfaceType);\n\n/**\n * Common attributes of a type definition.\n */\nexport interface TypeBase\n extends Documentable,\n SourceLocatable,\n TypeScriptLocatable {\n /**\n * The fully qualified name of the type (``..``)\n *\n * @minLength 3\n */\n fqn: FQN;\n\n /**\n * The name of the assembly the type belongs to.\n *\n * @minLength 1\n */\n assembly: string;\n\n /**\n * The namespace of the type (`foo.bar.baz`).\n *\n * When undefined, the type is located at the root of the assembly (its\n * `fqn` would be like `.`).\n *\n * For types inside other types or inside submodules, the `` corresponds to\n * the namespace-qualified name of the container (can contain multiple segments like:\n * `..`).\n *\n * In all cases:\n *\n * = [.].\n *\n * @default none\n */\n namespace?: string;\n\n /**\n * The simple name of the type (MyClass).\n *\n * @minLength 1\n */\n name: string;\n\n /**\n * The kind of the type.\n */\n kind: TypeKind;\n}\n\n/**\n * Kinds of types.\n */\nexport enum TypeKind {\n Class = 'class',\n Enum = 'enum',\n Interface = 'interface',\n}\n\n/**\n * Represents classes.\n */\nexport interface ClassType extends TypeBase {\n kind: TypeKind.Class;\n\n /**\n * The FQN of the base class of this class, if it has one.\n *\n * @default no base class\n */\n base?: FQN;\n\n /**\n * Initializer (constructor) method.\n *\n * @default no initializer\n */\n initializer?: Initializer;\n\n /**\n * List of properties.\n *\n * @default none\n */\n properties?: Property[];\n\n /**\n * List of methods.\n *\n * @default none\n */\n methods?: Method[];\n\n /**\n * Indicates if this class is an abstract class.\n *\n * @default false\n */\n abstract?: boolean;\n\n /**\n * The FQNs of the interfaces this class implements, if any.\n *\n * @default none\n * @uniqueItems true\n */\n interfaces?: FQN[];\n}\n\nexport function isClassType(type: Type | undefined): type is ClassType {\n return type?.kind === TypeKind.Class;\n}\n\nexport interface InterfaceType extends TypeBase {\n kind: TypeKind.Interface;\n\n /**\n * The FQNs of the interfaces this interface extends, if any.\n *\n * @default none\n * @uniqueItems true\n */\n interfaces?: FQN[];\n\n /**\n * List of methods.\n *\n * @default none\n */\n methods?: Method[];\n\n /**\n * List of properties.\n *\n * @default none\n */\n properties?: Property[];\n\n /**\n * True if this interface only contains properties. Different backends might\n * have idiomatic ways to allow defining concrete instances such interfaces.\n * For example, in Java, the generator will produce a PoJo and a builder\n * which will allow users to create a concrete object with data which\n * adheres to this interface.\n *\n * @default false\n */\n datatype?: boolean;\n}\n\nexport function isInterfaceType(type: Type | undefined): type is InterfaceType {\n return type?.kind === TypeKind.Interface;\n}\n\n/**\n * Represents a member of an enum.\n */\nexport interface EnumMember extends Documentable {\n /**\n * The name/symbol of the member.\n */\n name: string;\n}\n\n/**\n * Represents an enum type.\n */\nexport interface EnumType extends TypeBase {\n kind: TypeKind.Enum;\n\n /**\n * Members of the enum.\n */\n members: EnumMember[];\n}\n\nexport function isEnumType(type: Type | undefined): type is EnumType {\n return type?.kind === TypeKind.Enum;\n}\n\n/**\n * Return whether this type is a class or interface type\n */\nexport function isClassOrInterfaceType(\n type: Type | undefined,\n): type is InterfaceType | ClassType {\n return isClassType(type) || isInterfaceType(type);\n}\n\n/**\n * Return a string representation of the given type reference.\n */\nexport function describeTypeReference(type?: TypeReference): string {\n if (type === undefined) {\n return 'void';\n }\n\n if (isNamedTypeReference(type)) {\n return type.fqn;\n }\n\n if (isPrimitiveTypeReference(type)) {\n return type.primitive;\n }\n\n if (isCollectionTypeReference(type)) {\n return `${type.collection.kind}<${describeTypeReference(\n type.collection.elementtype,\n )}>`;\n }\n\n if (isUnionTypeReference(type)) {\n const unionType = type.union.types.map(describeTypeReference).join(' | ');\n return unionType;\n }\n\n throw new Error('Unrecognized type reference');\n}\n\n/**\n * Determines whether an entity is deprecated.\n *\n * @param entity the entity to be checked.\n *\n * @returns true if the entity is marked as deprecated.\n */\nexport function isDeprecated(entity: Documentable): boolean {\n return entity?.docs?.stability === Stability.Deprecated;\n}\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/lib/configuration.js.map b/packages/@jsii/spec/lib/configuration.js.map new file mode 100644 index 0000000000..76f31c3110 --- /dev/null +++ b/packages/@jsii/spec/lib/configuration.js.map @@ -0,0 +1 @@ +{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"","sourcesContent":["import { Stability } from './assembly';\n\n/**\n * Structure of jsii configuration in package.json\n */\nexport interface Config {\n /**\n * Output directory of typescript compiler\n */\n outdir?: string;\n\n /**\n * Determines the format of the jsii toolchain version string that will be\n * included in the .jsii assembly file's jsiiVersion attribute.\n *\n * full (the default) - a version number including a commit hash will be used\n * example: 0.14.3 (build 1b1062d)\n *\n * short - only the version number of jsii will be used\n * example: 0.14.3\n */\n versionFormat?: 'full' | 'short';\n\n /**\n * Defines which target languages the module supports.\n */\n targets?: {\n java?: {\n /*\n * generated maven package name\n */\n package: string;\n\n /**\n * groupId and artifactId for generated maven package.\n */\n maven: {\n groupId: string;\n artifactId: string;\n\n /**\n * optional version suffix for maven module version\n */\n versionSuffix?: string;\n };\n };\n python?: {\n /**\n * name of generated Python module, which will be used by users in import\n * directives\n */\n module: string;\n\n /**\n * the PyPI distribution name for the package.\n */\n distName: string;\n };\n dotnet?: {\n /**\n * the root namespace under which types will be declared\n */\n namespace: string;\n\n /**\n * identifier of the package in the NuGet registry\n */\n packageId: string;\n\n /**\n * url of the icon to be shown in the NuGet Gallery\n */\n iconUrl?: string;\n\n /**\n * optional suffix that will be appended at the end of the NuGet package's\n * version field\n */\n versionSuffix?: string;\n };\n };\n\n /**\n * used to record additional metadata as key-value pairs that will be recorded\n * as-is into the .jsii assembly file\n */\n metadata?: {\n [key: string]: any;\n };\n\n /**\n * TypeScript compiler options\n */\n tsc?: {\n outDir?: string;\n rootDir?: string;\n\n [key: string]: any;\n };\n}\n\n/**\n * Structure of jsii module package.json\n */\nexport interface PackageJson {\n /**\n * module name for typescript module published to npmjs\n */\n name: string;\n\n /**\n * module's current semantic version number\n */\n version: string;\n\n /**\n * module's source code repository information\n */\n repository:\n | string\n | {\n url: string;\n type?: string;\n directory?: string;\n };\n\n /**\n * main module entrypoint file\n */\n main: string;\n\n /**\n * module's primary author information\n */\n author:\n | string\n | {\n name: string;\n email?: string;\n url?: string;\n organization?: boolean;\n };\n\n /**\n * jsii compiler configuration\n */\n jsii: Config;\n\n /**\n * module's built typescript definitions file location\n */\n types: string;\n\n /**\n * module's api stability level\n */\n stability?: Stability;\n\n /**\n * Run-time dependencies that are private to this assembly\n */\n dependencies?: Record;\n\n /**\n * Run-time dependencies that will be shared with other assemblies\n */\n peerDependencies?: Record;\n\n /**\n * Build-time dependencies\n */\n devDependencies?: Record;\n\n bundleDependencies?: string[];\n\n bundledDependencies?: string[];\n\n [key: string]: unknown;\n}\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/lib/index.js.map b/packages/@jsii/spec/lib/index.js.map new file mode 100644 index 0000000000..fafe33e036 --- /dev/null +++ b/packages/@jsii/spec/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B;AAC3B,kDAAgC;AAChC,8CAA4B;AAC5B,sDAAoC","sourcesContent":["export * from './assembly';\nexport * from './configuration';\nexport * from './name-tree';\nexport * from './validate-assembly';\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/lib/name-tree.js.map b/packages/@jsii/spec/lib/name-tree.js.map new file mode 100644 index 0000000000..c2c4cc242b --- /dev/null +++ b/packages/@jsii/spec/lib/name-tree.js.map @@ -0,0 +1 @@ +{"version":3,"file":"name-tree.js","sourceRoot":"","sources":["../src/name-tree.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAa,QAAQ;IAYnB,2CAA2C;IAC3C;QAJQ,cAAS,GAAiC,EAAE,CAAC;IAI9B,CAAC;IAZjB,MAAM,CAAC,EAAE,CAAC,IAAmB;;QAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,OAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,EAAE;YAClD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAQD,0CAA0C;IAC1C,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,0EAA0E;IAC1E,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,GAAW,EAAE,OAAiB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;SACjB;aAAM;YACL,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;aACvC;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA3CD,4BA2CC","sourcesContent":["import * as spec from './assembly';\n\n/**\n * A tree of all names in a module. A node represent a type (terminal)\n * and may represent another node in the namespace (at the same time).\n * Therefore, a key of '_' represents a terminal and references the fqn\n * of the type.\n *\n * For example, say we have the following types:\n * - aws.ec2.Host\n * - aws.ec2.Instance\n * - aws.ec2.Instance.Subtype\n *\n * the the name tree will look like this:\n *\n * module: {\n * children: {\n * aws: {\n * children {\n * ec2: {\n * children: {\n * Host: {\n * fqn: 'aws.ec2.Host',\n * children: {}\n * },\n * Instance: {\n * fqn: 'aws.ec2.Host',\n * children: {\n * Subtype: {\n * fqn: 'aws.ec2.Host.Subtype',\n * children: {}\n * }\n * }\n * }\n * }\n * }\n * }\n * }\n * }\n * }\n */\nexport class NameTree {\n public static of(assm: spec.Assembly): NameTree {\n const nameTree = new NameTree();\n for (const type of Object.values(assm.types ?? {})) {\n nameTree.register(type.fqn);\n }\n return nameTree;\n }\n\n private _children: { [name: string]: NameTree } = {};\n private _fqn?: string;\n\n /* NameTree.of(assembly) should be used. */\n private constructor() {}\n\n /** The children of this node, by name. */\n public get children(): { readonly [name: string]: NameTree } {\n return this._children;\n }\n\n /** The fully qualified name of the type at this node, if there is one. */\n public get fqn(): string | undefined {\n return this._fqn;\n }\n\n /**\n * Adds a type to this ``NameTree``.\n *\n * @param type the type to be added.\n * @param path the path at which to add the node under this tree.\n */\n private register(fqn: string, path: string[] = fqn.split('.')): this {\n if (path.length === 0) {\n this._fqn = fqn;\n } else {\n const [head, ...rest] = path;\n if (!this._children[head]) {\n this._children[head] = new NameTree();\n }\n this._children[head]!.register(fqn, rest);\n }\n return this;\n }\n}\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/lib/name-tree.test.js.map b/packages/@jsii/spec/lib/name-tree.test.js.map new file mode 100644 index 0000000000..8894ba4738 --- /dev/null +++ b/packages/@jsii/spec/lib/name-tree.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"name-tree.test.js","sourceRoot":"","sources":["../src/name-tree.test.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,2CAAuC;AAEvC,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,QAAQ;IACR,MAAM,IAAI,GAAkB;QAC1B,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;QACjC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;QAC7C,UAAU,EAAE;YACV,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,4BAA4B;SAClC;QACD,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,EAAE;QACX,KAAK,EAAE;YACL,gBAAgB,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;YAC/C,2BAA2B,EAAE,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC;YACrE,sBAAsB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;SAC5D;KACF,CAAC;IAEF,OAAO;IACP,MAAM,QAAQ,GAAG,oBAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;IACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,CACJ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACnE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CACJ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,MAAM,CACJ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzE,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CACjE,SAAS,CACV,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CACjE,gBAAgB,CACjB,CAAC;IACF,MAAM,CACJ,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAC3E,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACpC,MAAM,CACJ,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CACtE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,EAAU,EAAE,IAAY;IACxC,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC1E,CAAC","sourcesContent":["import * as spec from './assembly';\nimport { NameTree } from './name-tree';\n\nconst assemblyName = '@foo/bar';\n\ntest('correctly represents sample assembly', () => {\n // GIVEN\n const assm: spec.Assembly = {\n schema: spec.SchemaVersion.LATEST,\n name: assemblyName,\n description: 'bla',\n homepage: 'https://github.com/bla/bla',\n author: { name: 'Author', roles: ['author'] },\n repository: {\n type: 'scm',\n url: 'https://github.com/bla/bla',\n },\n version: '0.0.1',\n jsiiVersion: 'TEST',\n license: 'NONE',\n fingerprint: '',\n targets: {},\n types: {\n 'org.jsii.TypeA': makeType('org.jsii', 'TypeA'),\n 'org.jsii.TypeA.NestedType': makeType('org.jsii.TypeA', 'NestedType'),\n 'org.jsii.enums.TypeB': makeType('org.jsii.enums', 'TypeB'),\n },\n };\n\n // WHEN\n const nameTree = NameTree.of(assm);\n\n // THEN\n expect(Object.keys(nameTree.children)).toEqual(['org']);\n expect(Object.keys(nameTree.children.org.children)).toEqual(['jsii']);\n expect(\n new Set(Object.keys(nameTree.children.org.children.jsii.children)),\n ).toEqual(new Set(['enums', 'TypeA']));\n expect(\n Object.keys(nameTree.children.org.children.jsii.children.enums.children),\n ).toEqual(['TypeB']);\n expect(\n Object.keys(nameTree.children.org.children.jsii.children.TypeA.children),\n ).toEqual(['NestedType']);\n\n expect(nameTree.fqn).toBe(undefined);\n expect(nameTree.children.org.fqn).toBe(undefined);\n expect(nameTree.children.org.children.jsii.fqn).toBe(undefined);\n expect(nameTree.children.org.children.jsii.children.enums.fqn).toBe(\n undefined,\n );\n\n expect(nameTree.children.org.children.jsii.children.TypeA.fqn).toBe(\n 'org.jsii.TypeA',\n );\n expect(\n nameTree.children.org.children.jsii.children.TypeA.children.NestedType.fqn,\n ).toBe('org.jsii.TypeA.NestedType');\n expect(\n nameTree.children.org.children.jsii.children.enums.children.TypeB.fqn,\n ).toBe('org.jsii.enums.TypeB');\n});\n\nfunction makeType(ns: string, name: string): spec.Type {\n const fqn = `${ns}.${name}`;\n return { fqn, name, assembly: assemblyName, kind: spec.TypeKind.Class };\n}\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/lib/validate-assembly.js.map b/packages/@jsii/spec/lib/validate-assembly.js.map new file mode 100644 index 0000000000..a39904ea63 --- /dev/null +++ b/packages/@jsii/spec/lib/validate-assembly.js.map @@ -0,0 +1 @@ +{"version":3,"file":"validate-assembly.js","sourceRoot":"","sources":["../src/validate-assembly.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAI/C,qGAAqG;AACxF,QAAA,MAAM,GAAW,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEzE,SAAgB,gBAAgB,CAAC,GAAQ;IACvC,MAAM,SAAS,GAAG,IAAI,sBAAS,EAAE,CAAC;IAClC,SAAS,CAAC,SAAS,CAAC,cAAM,CAAC,CAAC,CAAC,kBAAkB;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AARD,4CAQC","sourcesContent":["import { Schema, Validator } from 'jsonschema';\n\nimport { Assembly } from './assembly';\n\n// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\nexport const schema: Schema = require('../schema/jsii-spec.schema.json');\n\nexport function validateAssembly(obj: any): Assembly {\n const validator = new Validator();\n validator.addSchema(schema); // For definitions\n const result = validator.validate(obj, schema, { nestedErrors: true });\n if (result.valid) {\n return obj;\n }\n throw new Error(`Invalid assembly:\\n${result.toString()}`);\n}\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/lib/validate-assembly.test.js.map b/packages/@jsii/spec/lib/validate-assembly.test.js.map new file mode 100644 index 0000000000..a474aa29c5 --- /dev/null +++ b/packages/@jsii/spec/lib/validate-assembly.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"validate-assembly.test.js","sourceRoot":"","sources":["../src/validate-assembly.test.ts"],"names":[],"mappings":";;AAAA,2BAA+C;AAC/C,+BAA+B;AAE/B,2DAAuD;AAEvD,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CACpC,MAAM,CAAC,GAAG,EAAE,CAAC,oCAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEnE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,MAAM,UAAU,GAAG,cAAO,CACxB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,qBAAqB,CACtB,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,gBAAW,CAAC,UAAU,CAAC,EAAE;QAC5C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACrB,iBAAY,CAAC,cAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CACjE,CAAC;YACF,MAAM,CAAC,oCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { readFileSync, readdirSync } from 'fs';\nimport { resolve } from 'path';\n\nimport { validateAssembly } from './validate-assembly';\n\ntest('rejects invalid assembly', () =>\n expect(() => validateAssembly({})).toThrow(/Invalid assembly:/));\n\ndescribe('can load older assemblies', () => {\n const samplesDir = resolve(\n __dirname,\n '..',\n 'test-data',\n 'previous-assemblies',\n );\n for (const sample of readdirSync(samplesDir)) {\n test(sample, () => {\n const data = JSON.parse(\n readFileSync(resolve(samplesDir, sample), { encoding: 'utf-8' }),\n );\n expect(validateAssembly(data)).toBe(data);\n });\n }\n});\n"]} \ No newline at end of file diff --git a/packages/@jsii/spec/package.json b/packages/@jsii/spec/package.json index d953b5f687..0e3f4a36a6 100644 --- a/packages/@jsii/spec/package.json +++ b/packages/@jsii/spec/package.json @@ -34,9 +34,9 @@ "jsonschema": "^1.4.0" }, "devDependencies": { - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "jest": "^27.5.1", "jsii-build-tools": "^0.0.0", "prettier": "^2.6.2", diff --git a/packages/@scope/jsii-calc-base-of-base/.gitignore b/packages/@scope/jsii-calc-base-of-base/.gitignore index 2b974c4d07..eec60ae567 100644 --- a/packages/@scope/jsii-calc-base-of-base/.gitignore +++ b/packages/@scope/jsii-calc-base-of-base/.gitignore @@ -9,3 +9,4 @@ dist node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/packages/@scope/jsii-calc-base-of-base/package.json b/packages/@scope/jsii-calc-base-of-base/package.json index 0f706a084c..9376225617 100644 --- a/packages/@scope/jsii-calc-base-of-base/package.json +++ b/packages/@scope/jsii-calc-base-of-base/package.json @@ -30,7 +30,7 @@ "test:update": "npm run build && UPDATE_DIFF=1 npm run test" }, "devDependencies": { - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", "jsii-rosetta": "^0.0.0", diff --git a/packages/@scope/jsii-calc-base/.gitignore b/packages/@scope/jsii-calc-base/.gitignore index 7f5baf52ba..9ef735acbf 100644 --- a/packages/@scope/jsii-calc-base/.gitignore +++ b/packages/@scope/jsii-calc-base/.gitignore @@ -13,3 +13,4 @@ dist node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/packages/@scope/jsii-calc-base/package.json b/packages/@scope/jsii-calc-base/package.json index e696356aca..cf2020f68e 100644 --- a/packages/@scope/jsii-calc-base/package.json +++ b/packages/@scope/jsii-calc-base/package.json @@ -35,7 +35,7 @@ "@scope/jsii-calc-base-of-base": "^2.1.1" }, "devDependencies": { - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", "jsii-rosetta": "^0.0.0", diff --git a/packages/@scope/jsii-calc-lib/.gitignore b/packages/@scope/jsii-calc-lib/.gitignore index 744bebe408..5838bdb405 100644 --- a/packages/@scope/jsii-calc-lib/.gitignore +++ b/packages/@scope/jsii-calc-lib/.gitignore @@ -10,3 +10,4 @@ dist/ node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/packages/@scope/jsii-calc-lib/package.json b/packages/@scope/jsii-calc-lib/package.json index eb4be83ee7..88d81e6afd 100644 --- a/packages/@scope/jsii-calc-lib/package.json +++ b/packages/@scope/jsii-calc-lib/package.json @@ -39,7 +39,7 @@ "@scope/jsii-calc-base-of-base": "^2.1.1" }, "devDependencies": { - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", "jsii-rosetta": "^0.0.0", diff --git a/packages/codemaker/.gitignore b/packages/codemaker/.gitignore index 1232a045d1..c1b03e1d21 100644 --- a/packages/codemaker/.gitignore +++ b/packages/codemaker/.gitignore @@ -84,3 +84,4 @@ typings/ # End of https://www.gitignore.io/api/node +*.d.ts.map diff --git a/packages/codemaker/package.json b/packages/codemaker/package.json index 00b0dea6b2..9239b163d7 100644 --- a/packages/codemaker/package.json +++ b/packages/codemaker/package.json @@ -37,9 +37,9 @@ }, "devDependencies": { "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "jest": "^27.5.1", "prettier": "^2.6.2", "typescript": "~3.9.10" diff --git a/packages/jsii-calc/.gitignore b/packages/jsii-calc/.gitignore index 2b974c4d07..eec60ae567 100644 --- a/packages/jsii-calc/.gitignore +++ b/packages/jsii-calc/.gitignore @@ -9,3 +9,4 @@ dist node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/packages/jsii-calc/package.json b/packages/jsii-calc/package.json index d0d11f9a5c..5587b5dd21 100644 --- a/packages/jsii-calc/package.json +++ b/packages/jsii-calc/package.json @@ -51,8 +51,8 @@ "@scope/jsii-calc-lib": "^0.0.0" }, "devDependencies": { - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", "jsii-rosetta": "^0.0.0", diff --git a/packages/jsii-config/.gitignore b/packages/jsii-config/.gitignore index 6ea4c5aebc..ae28b05e08 100644 --- a/packages/jsii-config/.gitignore +++ b/packages/jsii-config/.gitignore @@ -2,3 +2,4 @@ *.d.ts node_modules/ coverage/ +*.d.ts.map diff --git a/packages/jsii-config/package.json b/packages/jsii-config/package.json index be7ddf7ad7..b8181723eb 100644 --- a/packages/jsii-config/package.json +++ b/packages/jsii-config/package.json @@ -20,10 +20,10 @@ }, "devDependencies": { "@types/inquirer": "^8.2.1", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "@types/yargs": "^17.0.10", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "jest": "^27.5.1", "jest-expect-message": "^1.0.2", "prettier": "^2.6.2", diff --git a/packages/jsii-diff/.gitignore b/packages/jsii-diff/.gitignore index cca1321d66..f011fea9b2 100644 --- a/packages/jsii-diff/.gitignore +++ b/packages/jsii-diff/.gitignore @@ -5,3 +5,4 @@ node_modules/ coverage/ lib/version.ts +*.d.ts.map diff --git a/packages/jsii-diff/package.json b/packages/jsii-diff/package.json index ac76318c37..4e73612a65 100644 --- a/packages/jsii-diff/package.json +++ b/packages/jsii-diff/package.json @@ -37,16 +37,16 @@ "@jsii/spec": "^0.0.0", "fs-extra": "^9.1.0", "jsii-reflect": "^0.0.0", - "log4js": "^6.4.5", + "log4js": "^6.4.6", "typescript": "~3.9.10", "yargs": "^16.2.0" }, "devDependencies": { "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "@types/tar-fs": "^2.0.1", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "jest": "^27.5.1", "jest-expect-message": "^1.0.2", "jsii": "^0.0.0", diff --git a/packages/jsii-pacmak/.gitignore b/packages/jsii-pacmak/.gitignore index a72e62b716..4c48a947f8 100644 --- a/packages/jsii-pacmak/.gitignore +++ b/packages/jsii-pacmak/.gitignore @@ -13,3 +13,4 @@ node_modules/ coverage/ test/expected.*/dotnet/**/obj/Debug +*.d.ts.map diff --git a/packages/jsii-pacmak/lib/targets/python.ts b/packages/jsii-pacmak/lib/targets/python.ts index 8b560e27a5..399e07db7c 100644 --- a/packages/jsii-pacmak/lib/targets/python.ts +++ b/packages/jsii-pacmak/lib/targets/python.ts @@ -24,7 +24,6 @@ import { PythonImports, mergePythonImports, toPackageName, - toPythonFqn, } from './python/type-name'; import { die, toPythonIdentifier } from './python/util'; import { toPythonVersionRange, toReleaseVersion } from './version-utils'; @@ -1568,7 +1567,30 @@ class PythonModule implements PythonType { !this.loadAssembly, 'PythonModule.addPythonModule CANNOT be called on assembly-loading modules (it would cause a load cycle)!', ); - this.modules.push(pyMod); + + assert( + pyMod.pythonName.startsWith(`${this.pythonName}.`), + `Attempted to register ${pyMod.pythonName} as a child module of ${this.pythonName}, but the names don't match!`, + ); + + const [firstLevel, ...rest] = pyMod.pythonName + .substring(this.pythonName.length + 1) + .split('.'); + if (rest.length === 0) { + // This is a direct child module... + this.modules.push(pyMod); + } else { + // This is a nested child module, so we delegate to the directly nested module... + const parent = this.modules.find( + (m) => m.pythonName === `${this.pythonName}.${firstLevel}`, + ); + if (!parent) { + throw new Error( + `Attempted to register ${pyMod.pythonName} within ${this.pythonName}, but ${this.pythonName}.${firstLevel} wasn't registered yet!`, + ); + } + parent.addPythonModule(pyMod); + } } public requiredImports(context: EmitContext): PythonImports { @@ -1692,25 +1714,13 @@ class PythonModule implements PythonType { l.pythonName.localeCompare(r.pythonName), )) { // Rather than generating an absolute import like - // "import jsii_calc.submodule.nested_submodule.deeply_nested" - // this builds a relative import like - // "from .submodule.nested_submodule import deeply_nested" - // This enables distributing python packages and using the - // generated modules in the same codebase. - const assemblyName = toPythonFqn( - module.assembly.name, - module.assembly, - ).pythonFqn; - - const submodule = module.pythonName - .replace(`${assemblyName}.`, '') - .split('.'); - - const submodulePath = submodule - .slice(0, submodule.length - 1) - .join('.'); - const submoduleName = submodule[submodule.length - 1]; - code.line(`from .${submodulePath} import ${submoduleName}`); + // "import jsii_calc.submodule" this builds a relative import like + // "from . import submodule". This enables distributing python packages + // and using the generated modules in the same codebase. + const submodule = module.pythonName.substring( + this.pythonName.length + 1, + ); + code.line(`from . import ${submodule}`); } } } diff --git a/packages/jsii-pacmak/package.json b/packages/jsii-pacmak/package.json index 6d386dbc04..d228c59d59 100644 --- a/packages/jsii-pacmak/package.json +++ b/packages/jsii-pacmak/package.json @@ -59,10 +59,10 @@ "@types/clone": "^2.1.1", "@types/commonmark": "^0.27.5", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "@types/semver": "^7.3.9", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "jest": "^27.5.1", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", diff --git a/packages/jsii-pacmak/test/build-test.sh b/packages/jsii-pacmak/test/build-test.sh index ab42ff1464..b9026cec3c 100755 --- a/packages/jsii-pacmak/test/build-test.sh +++ b/packages/jsii-pacmak/test/build-test.sh @@ -46,7 +46,7 @@ else # Hello Windows! . ${venv}/Scripts/activate fi -${PYTHON} -m pip install --upgrade pip~=22.0 twine~=4.0 +${PYTHON} -m pip install --upgrade pip~=22.1 twine~=4.0 # Provision a specific NuGet package cache NUGET_CACHE=${outdir}/.nuget/packages diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap index 9dc5df4093..815c9fcc93 100644 --- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap +++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.ts.snap @@ -10274,7 +10274,6 @@ publication.publish() # Loading modules to ensure their types are registered with the jsii runtime library from . import cdk16625 -from .cdk16625 import donotimport from . import composition from . import derived_class_has_no_properties from . import interface_in_namespace_includes_classes @@ -10283,28 +10282,13 @@ from . import module2530 from . import module2617 from . import module2647 from . import module2689 -from .module2689 import methods -from .module2689 import props -from .module2689 import retval -from .module2689 import structs from . import module2692 -from .module2692 import submodule1 -from .module2692 import submodule2 from . import module2700 from . import module2702 from . import nodirect -from .nodirect import sub1 -from .nodirect import sub2 from . import onlystatic from . import python_self from . import submodule -from .submodule import back_references -from .submodule import child -from .submodule import isolated -from .submodule import nested_submodule -from .submodule.nested_submodule import deeply_nested -from .submodule import param -from .submodule import returnsparam `; @@ -10403,10 +10387,14 @@ typing.cast(typing.Any, Cdk16625).__jsii_proxy_class__ = lambda : _Cdk16625Proxy __all__ = [ "Cdk16625", + "donotimport", ] publication.publish() +# Loading modules to ensure their types are registered with the jsii runtime library +from . import donotimport + `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/cdk16625/donotimport/__init__.py 1`] = ` @@ -10905,10 +10893,21 @@ import typing_extensions from .._jsii import * -__all__: typing.List[typing.Any] = [] +__all__ = [ + "methods", + "props", + "retval", + "structs", +] publication.publish() +# Loading modules to ensure their types are registered with the jsii runtime library +from . import methods +from . import props +from . import retval +from . import structs + `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/module2689/methods/__init__.py 1`] = ` @@ -11122,10 +11121,17 @@ import typing_extensions from .._jsii import * -__all__: typing.List[typing.Any] = [] +__all__ = [ + "submodule1", + "submodule2", +] publication.publish() +# Loading modules to ensure their types are registered with the jsii runtime library +from . import submodule1 +from . import submodule2 + `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/module2692/submodule1/__init__.py 1`] = ` @@ -11614,10 +11620,17 @@ import typing_extensions from .._jsii import * -__all__: typing.List[typing.Any] = [] +__all__ = [ + "sub1", + "sub2", +] publication.publish() +# Loading modules to ensure their types are registered with the jsii runtime library +from . import sub1 +from . import sub2 + `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/nodirect/sub1/__init__.py 1`] = ` @@ -11965,10 +11978,24 @@ class MyClass(metaclass=jsii.JSIIMeta, jsii_type="jsii-calc.submodule.MyClass"): __all__ = [ "Default", "MyClass", + "back_references", + "child", + "isolated", + "nested_submodule", + "param", + "returnsparam", ] publication.publish() +# Loading modules to ensure their types are registered with the jsii runtime library +from . import back_references +from . import child +from . import isolated +from . import nested_submodule +from . import param +from . import returnsparam + `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/submodule/back_references/__init__.py 1`] = ` @@ -12314,10 +12341,14 @@ typing.cast(typing.Any, Namespaced).__jsii_proxy_class__ = lambda : _NamespacedP __all__ = [ "Namespaced", + "deeply_nested", ] publication.publish() +# Loading modules to ensure their types are registered with the jsii runtime library +from . import deeply_nested + `; exports[`Generated code for "jsii-calc": /python/src/jsii_calc/submodule/nested_submodule/deeply_nested/__init__.py 1`] = ` diff --git a/packages/jsii-reflect/.gitignore b/packages/jsii-reflect/.gitignore index 273dc78d15..28952847d5 100644 --- a/packages/jsii-reflect/.gitignore +++ b/packages/jsii-reflect/.gitignore @@ -17,3 +17,4 @@ coverage node_modules !jest.config.js +*.d.ts.map diff --git a/packages/jsii-reflect/package.json b/packages/jsii-reflect/package.json index 19a6fe7949..082df38257 100644 --- a/packages/jsii-reflect/package.json +++ b/packages/jsii-reflect/package.json @@ -44,9 +44,9 @@ "devDependencies": { "@scope/jsii-calc-lib": "^0.0.0", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "jest": "^27.5.1", "jsii": "^0.0.0", "jsii-build-tools": "^0.0.0", diff --git a/packages/jsii-rosetta/.gitignore b/packages/jsii-rosetta/.gitignore index cc84d43620..ca972da19b 100644 --- a/packages/jsii-rosetta/.gitignore +++ b/packages/jsii-rosetta/.gitignore @@ -4,3 +4,4 @@ node_modules *.d.ts coverage +*.d.ts.map diff --git a/packages/jsii-rosetta/lib/typescript/ts-compiler.ts b/packages/jsii-rosetta/lib/typescript/ts-compiler.ts index 134c5adf3a..4a68c6485d 100644 --- a/packages/jsii-rosetta/lib/typescript/ts-compiler.ts +++ b/packages/jsii-rosetta/lib/typescript/ts-compiler.ts @@ -70,6 +70,7 @@ export const STANDARD_COMPILER_OPTIONS: ts.CompilerOptions = { alwaysStrict: true, charset: 'utf8', declaration: true, + declarationMap: true, experimentalDecorators: true, inlineSourceMap: true, inlineSources: true, diff --git a/packages/jsii-rosetta/package.json b/packages/jsii-rosetta/package.json index afe3446c0f..64c17c70c7 100644 --- a/packages/jsii-rosetta/package.json +++ b/packages/jsii-rosetta/package.json @@ -18,12 +18,12 @@ "devDependencies": { "@types/commonmark": "^0.27.5", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", + "@types/jest": "^27.5.0", "@types/mock-fs": "^4.13.1", - "@types/node": "^12.20.48", + "@types/node": "^12.20.50", "@types/workerpool": "^6.1.0", "@types/semver": "^7.3.9", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "jest": "^27.5.1", "jsii-build-tools": "0.0.0", "memory-streams": "^0.1.3", diff --git a/packages/jsii/.gitignore b/packages/jsii/.gitignore index 393c9b5052..79926bca58 100644 --- a/packages/jsii/.gitignore +++ b/packages/jsii/.gitignore @@ -8,3 +8,4 @@ coverage/ README.md lib/version.ts +*.d.ts.map diff --git a/packages/jsii/lib/compiler.ts b/packages/jsii/lib/compiler.ts index 8cf437e041..85a091941e 100644 --- a/packages/jsii/lib/compiler.ts +++ b/packages/jsii/lib/compiler.ts @@ -16,6 +16,7 @@ const BASE_COMPILER_OPTIONS: ts.CompilerOptions = { alwaysStrict: true, charset: 'utf8', declaration: true, + declarationMap: true, experimentalDecorators: true, incremental: true, inlineSourceMap: true, diff --git a/packages/jsii/lib/transforms/deprecation-warnings.ts b/packages/jsii/lib/transforms/deprecation-warnings.ts index 04775ddf91..a0a7b2f36a 100644 --- a/packages/jsii/lib/transforms/deprecation-warnings.ts +++ b/packages/jsii/lib/transforms/deprecation-warnings.ts @@ -530,10 +530,7 @@ class Transformer { node.body, insertStatements( node.body, - wrapWithRethrow( - statements, - ts.createPropertyAccess(ts.createThis(), 'constructor'), - ), + wrapWithRethrow(statements, node.parent.name!), ), ), ) as any; diff --git a/packages/jsii/lib/utils.ts b/packages/jsii/lib/utils.ts index af3303172c..984c505a78 100644 --- a/packages/jsii/lib/utils.ts +++ b/packages/jsii/lib/utils.ts @@ -72,7 +72,7 @@ export function formatDiagnostic( /** * Formats a diagnostic message with color and context, if possible. Users - * should use `formatDiagnostic` instead, as this implementation is inteded for + * should use `formatDiagnostic` instead, as this implementation is intended for * internal usafe only. * * @param diagnostic the diagnostic message ot be formatted. diff --git a/packages/jsii/package.json b/packages/jsii/package.json index 2cd3116474..758e7d8f59 100644 --- a/packages/jsii/package.json +++ b/packages/jsii/package.json @@ -41,7 +41,7 @@ "chalk": "^4", "deep-equal": "^2.0.5", "fs-extra": "^9.1.0", - "log4js": "^6.4.5", + "log4js": "^6.4.6", "semver": "^7.3.7", "semver-intersect": "^1.4.0", "sort-json": "^2.0.1", @@ -53,11 +53,11 @@ "@types/clone": "^2.1.1", "@types/deep-equal": "^1.0.1", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", "@types/semver": "^7.3.9", "clone": "^2.1.2", - "eslint": "^8.13.0", + "eslint": "^8.15.0", "jest": "^27.5.1", "jest-expect-message": "^1.0.2", "jsii-build-tools": "^0.0.0", diff --git a/packages/jsii/test/compiler.test.ts b/packages/jsii/test/compiler.test.ts index 91bf44b98b..ea01aee57f 100644 --- a/packages/jsii/test/compiler.test.ts +++ b/packages/jsii/test/compiler.test.ts @@ -148,6 +148,29 @@ describe(Compiler, () => { removeSync(sourceDir); } }); + + test('emits declaration map', () => { + const sourceDir = mkdtempSync(join(tmpdir(), 'jsii-tmpdir')); + + try { + writeFileSync(join(sourceDir, 'index.ts'), 'export class MarkerA {}'); + + const compiler = new Compiler({ + projectInfo: { + ..._makeProjectInfo(sourceDir, 'index.d.ts'), + }, + generateTypeScriptConfig: 'tsconfig.jsii.json', + }); + + compiler.emit(); + + expect(() => { + readFileSync(join(sourceDir, 'index.d.ts.map'), 'utf-8'); + }).not.toThrow(); + } finally { + removeSync(sourceDir); + } + }); }); function _makeProjectInfo(sourceDir: string, types: string): ProjectInfo { @@ -180,6 +203,7 @@ function expectedTypeScriptConfig() { charset: 'utf8', composite: false, declaration: true, + declarationMap: true, experimentalDecorators: true, incremental: true, inlineSourceMap: true, diff --git a/packages/jsii/test/deprecated-remover.test.ts b/packages/jsii/test/deprecated-remover.test.ts index 920d228384..5c651f9cb7 100644 --- a/packages/jsii/test/deprecated-remover.test.ts +++ b/packages/jsii/test/deprecated-remover.test.ts @@ -113,12 +113,12 @@ test('produces correct output', () => { export * from './retained'; export * from './enums'; export { GrandChild, Retained } from './mixed'; - ////////////////// + //# sourceMappingURL=index.d.ts.map////////////////// /////////////////////// /// deprecated.d.ts /// - /////////////////////// + //# sourceMappingURL=deprecated.d.ts.map/////////////////////// ///////////////////// @@ -127,7 +127,7 @@ test('produces correct output', () => { } export declare class RetainedClass { } - ///////////////////// + //# sourceMappingURL=retained.d.ts.map///////////////////// ////////////////// @@ -135,7 +135,7 @@ test('produces correct output', () => { export declare enum SomeEnum { VALUE_RETAINED = 0 } - ////////////////// + //# sourceMappingURL=enums.d.ts.map////////////////// ////////////////// @@ -148,7 +148,7 @@ test('produces correct output', () => { export declare class GrandChild extends Retained implements retained_1.IRetainedInterface { retainedMethod(): void; } - ////////////////// + //# sourceMappingURL=mixed.d.ts.map////////////////// " `); }); @@ -177,12 +177,12 @@ test('cross-file deprecated heritage', () => { import './deprecated'; export interface INotDeprecated { } - ////////////////// + //# sourceMappingURL=index.d.ts.map////////////////// /////////////////////// /// deprecated.d.ts /// - /////////////////////// + //# sourceMappingURL=deprecated.d.ts.map/////////////////////// " `); }); @@ -452,7 +452,7 @@ describe('stripDeprecatedAllowList', () => { export * from './retained'; export * from './enums'; export { Deprecated, GrandChild, Retained } from './mixed'; - ////////////////// + //# sourceMappingURL=index.d.ts.map////////////////// /////////////////////// @@ -460,7 +460,7 @@ describe('stripDeprecatedAllowList', () => { /** @deprecated stripped */ export declare class DeprecatedClass { } - /////////////////////// + //# sourceMappingURL=deprecated.d.ts.map/////////////////////// ///////////////////// @@ -469,7 +469,7 @@ describe('stripDeprecatedAllowList', () => { } export declare class RetainedClass { } - ///////////////////// + //# sourceMappingURL=retained.d.ts.map///////////////////// ////////////////// @@ -482,7 +482,7 @@ describe('stripDeprecatedAllowList', () => { VALUE_ONE = 0, VALUE_TWO = 1 } - ////////////////// + //# sourceMappingURL=enums.d.ts.map////////////////// ////////////////// @@ -499,7 +499,7 @@ describe('stripDeprecatedAllowList', () => { export declare class GrandChild extends Deprecated { retainedMethod(): void; } - ////////////////// + //# sourceMappingURL=mixed.d.ts.map////////////////// " `); }); diff --git a/packages/jsii/test/deprecation-warnings.test.ts b/packages/jsii/test/deprecation-warnings.test.ts index cd62370f31..2262b4458e 100644 --- a/packages/jsii/test/deprecation-warnings.test.ts +++ b/packages/jsii/test/deprecation-warnings.test.ts @@ -656,7 +656,7 @@ describe('Call injections', () => { } catch (error) { if (process.env.JSII_DEBUG !== \\"1\\" && error.name === \\"DeprecationError\\") { - Error.captureStackTrace(error, this.constructor); + Error.captureStackTrace(error, Foo); } throw error; } } @@ -664,7 +664,7 @@ describe('Call injections', () => { exports.Foo = Foo; _a = JSII_RTTI_SYMBOL_1; Foo[_a] = { fqn: \\"testpkg.Foo\\", version: \\"0.0.1\\" }; - //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDSSxxQ0FBcUM7QUFDckMsTUFBYSxHQUFHO0lBQ2Q7Ozs7Ozs7O09BQWU7O0FBRGpCLGtCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgLyoqIEBkZXByZWNhdGVkIFVzZSBzb21ldGhpbmcgZWxzZSAqL1xuICAgIGV4cG9ydCBjbGFzcyBGb28ge1xuICAgICAgY29uc3RydWN0b3IoKXt9XG4gICAgfVxuICAiXX0=" + //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDSSxxQ0FBcUM7QUFDckMsTUFBYSxHQUFHO0lBQ2Q7Ozs7OzJDQURXLEdBQUc7OztPQUNDOztBQURqQixrQkFFQyIsInNvdXJjZXNDb250ZW50IjpbIlxuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugc29tZXRoaW5nIGVsc2UgKi9cbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIGNvbnN0cnVjdG9yKCl7fVxuICAgIH1cbiAgIl19" `); }); }); diff --git a/packages/jsii/vendor/.gitignore b/packages/jsii/vendor/.gitignore index f955bf36ab..59b4cfaf70 100644 --- a/packages/jsii/vendor/.gitignore +++ b/packages/jsii/vendor/.gitignore @@ -1 +1,2 @@ !*.d.ts +*.d.ts.map diff --git a/packages/oo-ascii-tree/.gitignore b/packages/oo-ascii-tree/.gitignore index 273dc78d15..28952847d5 100644 --- a/packages/oo-ascii-tree/.gitignore +++ b/packages/oo-ascii-tree/.gitignore @@ -17,3 +17,4 @@ coverage node_modules !jest.config.js +*.d.ts.map diff --git a/packages/oo-ascii-tree/package.json b/packages/oo-ascii-tree/package.json index 8b72c95e0e..d3200c6182 100644 --- a/packages/oo-ascii-tree/package.json +++ b/packages/oo-ascii-tree/package.json @@ -31,9 +31,9 @@ "package": "package-js" }, "devDependencies": { - "@types/jest": "^27.4.1", - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/jest": "^27.5.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "jest": "^27.5.1", "jsii-build-tools": "^0.0.0", "prettier": "^2.6.2", diff --git a/tools/jsii-build-tools/.gitignore b/tools/jsii-build-tools/.gitignore index 7cf6d2ef9c..91fffae7b8 100644 --- a/tools/jsii-build-tools/.gitignore +++ b/tools/jsii-build-tools/.gitignore @@ -3,3 +3,4 @@ node_modules/ .nyc_output/ coverage/ +*.d.ts.map diff --git a/tools/jsii-compliance/package.json b/tools/jsii-compliance/package.json index 159eeddce1..bb419665a2 100644 --- a/tools/jsii-compliance/package.json +++ b/tools/jsii-compliance/package.json @@ -16,8 +16,8 @@ "tablemark": "^2.0.0" }, "devDependencies": { - "@types/node": "^12.20.48", - "eslint": "^8.13.0", + "@types/node": "^12.20.50", + "eslint": "^8.15.0", "prettier": "^2.6.2", "ts-node": "^10.7.0", "typescript": "~3.9.10" diff --git a/tsconfig-base.json b/tsconfig-base.json index 8ad672d746..06a519c49c 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -7,6 +7,7 @@ "strictPropertyInitialization": true, /* Require all properties be initialized in the constructor. */ "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ "declaration": true, /* Generates corresponding '.d.ts' file. */ + "declarationMap": true, /* Generates declaration map '.d.ts.map' file. */ "esModuleInterop": false, /* Turn on babel and typesystem compatibility with ES modules */ "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file. */ diff --git a/yarn.lock b/yarn.lock index 55affa47be..30888bf33a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,11 +3,12 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" @@ -16,49 +17,49 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== +"@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" + integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" + "@babel/generator" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" "@babel/helper-module-transforms" "^7.17.7" "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" + "@babel/parser" "^7.17.10" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.17.10" + "@babel/types" "^7.17.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.9", "@babel/generator@^7.7.2": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.17.10", "@babel/generator@^7.7.2": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" + integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.17.10" + "@jridgewell/gen-mapping" "^0.1.0" jsesc "^2.5.1" - source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-compilation-targets@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" + integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== dependencies: - "@babel/compat-data" "^7.17.7" + "@babel/compat-data" "^7.17.10" "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" + browserslist "^4.20.2" semver "^6.3.0" "@babel/helper-environment-visitor@^7.16.7": @@ -151,10 +152,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" + integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -241,9 +242,9 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz#80031e6042cad6a95ed753f672ebd23c30933195" + integrity sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -263,26 +264,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== +"@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" + integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" + "@babel/generator" "^7.17.10" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/parser" "^7.17.10" + "@babel/types" "^7.17.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" + integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -309,19 +310,19 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" - integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== +"@eslint/eslintrc@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.3.tgz#fcaa2bcef39e13d6e9e7f6271f4cc7cae1174886" + integrity sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.1" + espree "^9.3.2" globals "^13.9.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" - minimatch "^3.0.4" + minimatch "^3.1.2" strip-json-comments "^3.1.1" "@fixtures/jsii-calc-bundled@file:packages/@fixtures/jsii-calc-bundled": @@ -536,20 +537,33 @@ "@types/yargs" "^16.0.0" 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" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.0.7" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.13" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.7" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.7.tgz#941982134e9b7fad031c857ccfc4a0634fc6a471" - integrity sha512-8XC0l0PwCbdg2Uc8zIIf6djNX3lYiz9GqQlC1LJ9WQvTYvcfP8IA9K2IKRnPm5tAX6X/+orF+WwKZ0doGcgJlg== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.10" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz#db436f0917d655393851bc258918c00226c9b183" + integrity sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1483,9 +1497,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.0.tgz#7a9b80f712fe2052bc20da153ff1e552404d8e4b" - integrity sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA== + version "7.17.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" + integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== dependencies: "@babel/types" "^7.3.0" @@ -1527,9 +1541,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.4.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" - integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + version "8.4.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" + integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1588,10 +1602,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^27.4.1": - version "27.4.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.1.tgz#185cbe2926eaaf9662d340cc02e548ce9e11ab6d" - integrity sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw== +"@types/jest@^27.5.0": + version "27.5.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.0.tgz#e04ed1824ca6b1dd0438997ba60f99a7405d4c7b" + integrity sha512-9RBFx7r4k+msyj/arpfaa0WOOEcaAZNmN+j80KFbFCoSqCJGHTz7YMAMGQW9Xmqm5w6l5c25vbSjMwlikJi5+g== dependencies: jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" @@ -1631,19 +1645,19 @@ "@types/node" "*" "@types/node@*": - version "17.0.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" - integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== + version "17.0.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d" + integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q== -"@types/node@^12.20.48": - version "12.20.48" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.48.tgz#55f70bd432b6515828c0298689776861b90ca4fa" - integrity sha512-4kxzqkrpwYtn6okJUcb2lfUu9ilnb3yhUOH6qX3nug8D2DupZ2drIkff2yJzYcNJVl3begnlcaBJ7tqiTTzjnQ== +"@types/node@^12.20.50": + version "12.20.50" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.50.tgz#14ba5198f1754ffd0472a2f84ab433b45ee0b65e" + integrity sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA== "@types/node@^16.9.2": - version "16.11.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.27.tgz#5da19383bdbeda99bc0d09cfbb88cab7297ebc51" - integrity sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw== + version "16.11.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.33.tgz#566713b1b626f781c5c58fe3531307283e00720c" + integrity sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -1726,14 +1740,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz#022531a639640ff3faafaf251d1ce00a2ef000a1" - integrity sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q== +"@typescript-eslint/eslint-plugin@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz#bc4cbcf91fbbcc2e47e534774781b82ae25cc3d8" + integrity sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA== dependencies: - "@typescript-eslint/scope-manager" "5.20.0" - "@typescript-eslint/type-utils" "5.20.0" - "@typescript-eslint/utils" "5.20.0" + "@typescript-eslint/scope-manager" "5.23.0" + "@typescript-eslint/type-utils" "5.23.0" + "@typescript-eslint/utils" "5.23.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -1741,69 +1755,69 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.20.0.tgz#4991c4ee0344315c2afc2a62f156565f689c8d0b" - integrity sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w== +"@typescript-eslint/parser@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.23.0.tgz#443778e1afc9a8ff180f91b5e260ac3bec5e2de1" + integrity sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw== dependencies: - "@typescript-eslint/scope-manager" "5.20.0" - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/typescript-estree" "5.20.0" + "@typescript-eslint/scope-manager" "5.23.0" + "@typescript-eslint/types" "5.23.0" + "@typescript-eslint/typescript-estree" "5.23.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz#79c7fb8598d2942e45b3c881ced95319818c7980" - integrity sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg== +"@typescript-eslint/scope-manager@5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz#4305e61c2c8e3cfa3787d30f54e79430cc17ce1b" + integrity sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw== dependencies: - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/visitor-keys" "5.20.0" + "@typescript-eslint/types" "5.23.0" + "@typescript-eslint/visitor-keys" "5.23.0" -"@typescript-eslint/type-utils@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz#151c21cbe9a378a34685735036e5ddfc00223be3" - integrity sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw== +"@typescript-eslint/type-utils@5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz#f852252f2fc27620d5bb279d8fed2a13d2e3685e" + integrity sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw== dependencies: - "@typescript-eslint/utils" "5.20.0" + "@typescript-eslint/utils" "5.23.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" - integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== +"@typescript-eslint/types@5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.23.0.tgz#8733de0f58ae0ed318dbdd8f09868cdbf9f9ad09" + integrity sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw== -"@typescript-eslint/typescript-estree@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz#ab73686ab18c8781bbf249c9459a55dc9417d6b0" - integrity sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w== +"@typescript-eslint/typescript-estree@5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz#dca5f10a0a85226db0796e8ad86addc9aee52065" + integrity sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg== dependencies: - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/visitor-keys" "5.20.0" + "@typescript-eslint/types" "5.23.0" + "@typescript-eslint/visitor-keys" "5.23.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.20.0.tgz#b8e959ed11eca1b2d5414e12417fd94cae3517a5" - integrity sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w== +"@typescript-eslint/utils@5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.23.0.tgz#4691c3d1b414da2c53d8943310df36ab1c50648a" + integrity sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.20.0" - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/typescript-estree" "5.20.0" + "@typescript-eslint/scope-manager" "5.23.0" + "@typescript-eslint/types" "5.23.0" + "@typescript-eslint/typescript-estree" "5.23.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz#70236b5c6b67fbaf8b2f58bf3414b76c1e826c2a" - integrity sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg== +"@typescript-eslint/visitor-keys@5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz#057c60a7ca64667a39f991473059377a8067c87b" + integrity sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg== dependencies: - "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/types" "5.23.0" eslint-visitor-keys "^3.0.0" "@webassemblyjs/ast@1.11.1": @@ -1990,7 +2004,7 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -2010,10 +2024,10 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== add-stream@^1.0.0: version "1.0.0" @@ -2165,13 +2179,13 @@ array-ify@^1.0.0: integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" + integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.19.5" get-intrinsic "^1.1.1" is-string "^1.0.7" @@ -2352,15 +2366,15 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.14.5, browserslist@^4.17.5: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== +browserslist@^4.14.5, browserslist@^4.20.2: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" escalade "^3.1.1" - node-releases "^2.0.2" + node-releases "^2.0.3" picocolors "^1.0.0" bs-logger@0.x: @@ -2453,10 +2467,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.30001317: - version "1.0.30001332" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== +caniuse-lite@^1.0.30001332: + version "1.0.30001339" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001339.tgz#f9aece4ea8156071613b27791547ba0b33f176cf" + integrity sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ== case@^1.6.3: version "1.6.3" @@ -2958,10 +2972,10 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date-format@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.7.tgz#aa1cf4400badfe693c8462bbfcba43ab821d7d14" - integrity sha512-k5xqlzDGIfv2N/DHR/BR8Kc4N9CRy9ReuDkmdxeX/jNfit94QXd36emWMm40ZOEDKNm/c91yV9EO3uGPkR7wWQ== +date-format@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.9.tgz#4788015ac56dedebe83b03bc361f00c1ddcf1923" + integrity sha512-+8J+BOUpSrlKLQLeF8xJJVTxS8QfRSuJgwxSVvslzgO3E6khbI0F5mMEPf5mTYhCCm4h99knYP6H3W9n3BQFrg== dateformat@^3.0.0: version "3.0.3" @@ -3065,7 +3079,7 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-properties@^1.1.3: +define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== @@ -3214,10 +3228,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.4.84: - version "1.4.114" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz#d85ec0808dd50b0cf6e6b262480ffd385f71c873" - integrity sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA== +electron-to-chromium@^1.4.118: + version "1.4.137" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" + integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== emittery@^0.8.1: version "0.8.1" @@ -3236,7 +3250,7 @@ encoding@^0.1.12: dependencies: iconv-lite "^0.6.2" -enhanced-resolve@^5.9.2: +enhanced-resolve@^5.9.3: version "5.9.3" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== @@ -3271,17 +3285,19 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.5, es-abstract@^1.19.1, es-abstract@^1.19.2: - version "1.19.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== +es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: + version "1.20.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.0.tgz#b2d526489cceca004588296334726329e0a6bfb6" + integrity sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA== 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-symbol-description "^1.0.0" has "^1.0.3" + has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" @@ -3293,9 +3309,10 @@ es-abstract@^1.18.5, es-abstract@^1.19.1, es-abstract@^1.19.2: object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + regexp.prototype.flags "^1.4.1" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" es-get-iterator@^1.1.1: version "1.1.2" @@ -3455,12 +3472,12 @@ eslint-visitor-keys@^3.0.0, 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.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7" - integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ== +eslint@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.15.0.tgz#fea1d55a7062da48d82600d2e0974c55612a11e9" + integrity sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA== dependencies: - "@eslint/eslintrc" "^1.2.1" + "@eslint/eslintrc" "^1.2.3" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -3471,7 +3488,7 @@ eslint@^8.13.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.1" + espree "^9.3.2" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -3487,7 +3504,7 @@ eslint@^8.13.0: json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" regexpp "^3.2.0" @@ -3496,13 +3513,13 @@ eslint@^8.13.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" - integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== +espree@^9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" + integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" + acorn "^8.7.1" + acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" esprima@^4.0.0, esprima@^4.0.1: @@ -3757,7 +3774,7 @@ fs-access@^1.0.1: dependencies: null-check "^1.0.0" -fs-extra@^10.0.1: +fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -3805,6 +3822,16 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + 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" @@ -3991,9 +4018,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.13.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" - integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== + version "13.14.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.14.0.tgz#daf3ff9b4336527cf56e98330b6f64bea9aff9df" + integrity sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg== dependencies: type-fest "^0.20.2" @@ -4044,7 +4071,7 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -has-bigints@^1.0.1: +has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== @@ -4279,9 +4306,9 @@ interpret@^2.2.0: integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.6" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.6.tgz#5a651a37644586e18b6ba3b48ca122bf56495f67" + integrity sha512-/dAvCivFs/VexXAtiAoMIqyhkhStNC9CPD0h1noonimOgB1xrCkexF2c5CjlqQ72GgMPjN6tiV+oreoPv3Ft1g== is-arguments@^1.0.4, is-arguments@^1.1.0: version "1.1.1" @@ -4550,9 +4577,9 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + version "5.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" + integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -5068,12 +5095,12 @@ json-fixer@^1.5.1: chalk "^4.1.2" pegjs "^0.10.0" -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -5295,6 +5322,11 @@ 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.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -5315,16 +5347,16 @@ lodash@^4.11.2, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log4js@^6.4.5: - version "6.4.5" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.5.tgz#5cca31b29ece65a625efbc3df6fcbd9cecb9ee7b" - integrity sha512-43RJcYZ7nfUxpPO2woTl8CJ0t5+gucLJZ43mtp2PlInT+LygCp/bl6hNJtKulCJ+++fQsjIv4EO3Mp611PfeLQ== +log4js@^6.4.6: + version "6.4.6" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.6.tgz#1878aa3f09973298ecb441345fe9dd714e355c15" + integrity sha512-1XMtRBZszmVZqPAOOWczH+Q94AI42mtNWjvjA5RduKTSWjEc56uOBbyM1CJnfN4Ym0wSd8cQ43zOojlSHgRDAw== dependencies: - date-format "^4.0.7" + date-format "^4.0.9" debug "^4.3.4" flatted "^3.2.5" rfdc "^1.3.0" - streamroller "^3.0.7" + streamroller "^3.0.8" lower-case@^1.1.1: version "1.1.4" @@ -5721,10 +5753,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-releases@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== +node-releases@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" + integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== nopt@^4.0.1: version "4.0.3" @@ -6565,7 +6597,7 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regexp.prototype.flags@^1.3.0: +regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -6913,21 +6945,23 @@ source-map-support@^0.5.6, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: +source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@~0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -7041,14 +7075,14 @@ standard-version@^9.3.2: stringify-package "^1.0.1" yargs "^16.0.0" -streamroller@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.0.7.tgz#d566353d3d8b5d2f3d813d2df557c08083b414cf" - integrity sha512-kh68kwiDGuIPiPDWwRbEC5us+kfARP1e9AsQiaLaSqGrctOvMn0mtL8iNY3r4/o5nIoYi3gPI1jexguZsXDlxw== +streamroller@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.0.8.tgz#84b190e4080ee311ca1ebe0444e30ac8eedd028d" + integrity sha512-VI+ni3czbFZrd1MrlybxykWZ8sMDCMtTU7YJyhgb9M5X6d1DDxLdJr+gSnmRpXPMnIWxWKMaAE8K0WumBp3lDg== dependencies: - date-format "^4.0.7" + date-format "^4.0.9" debug "^4.3.4" - fs-extra "^10.0.1" + fs-extra "^10.1.0" strict-uri-encode@^2.0.0: version "2.0.0" @@ -7086,21 +7120,23 @@ string.prototype.repeat@^0.2.0: resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz#aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf" integrity sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8= -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" string_decoder@^1.1.1: version "1.3.0" @@ -7289,13 +7325,13 @@ terser-webpack-plugin@^5.1.3: terser "^5.7.2" terser@^5.7.2: - version "5.12.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.1.tgz#4cf2ebed1f5bceef5c83b9f60104ac4a78b49e9c" - integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== + version "5.13.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799" + integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA== dependencies: acorn "^8.5.0" commander "^2.20.0" - source-map "~0.7.2" + source-map "~0.8.0-beta.0" source-map-support "~0.5.20" test-exclude@^6.0.0: @@ -7383,6 +7419,13 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + tr46@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" @@ -7449,9 +7492,9 @@ tslib@^1.8.1, tslib@^1.9.0: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsutils@^3.21.0: version "3.21.0" @@ -7571,14 +7614,14 @@ umask@^1.1.0: resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" unique-filename@^1.1.1: @@ -7735,6 +7778,11 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -7776,10 +7824,10 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.72.0: - version "5.72.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.0.tgz#f8bc40d9c6bb489a4b7a8a685101d6022b8b6e28" - integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== +webpack@^5.72.1: + version "5.72.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.1.tgz#3500fc834b4e9ba573b9f430b2c0a61e1bb57d13" + integrity sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -7790,13 +7838,13 @@ webpack@^5.72.0: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.2" + enhanced-resolve "^5.9.3" es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.9" - json-parse-better-errors "^1.0.2" + json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" @@ -7826,6 +7874,15 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77"